File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed
test/CodeGen/Hexagon/isel Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -612,6 +612,9 @@ let Predicates = [UseHVX] in {
612612 (V6_vandvrt HvxVR:$Vs, (ToI32 0x01010101))>;
613613 def: Pat<(VecQ32 (trunc HVI32:$Vs)),
614614 (V6_vandvrt HvxVR:$Vs, (ToI32 0x01010101))>;
615+ def: Pat<(VecQ16 (trunc HWI32:$Vss)),
616+ (Combineq(VecQ32(V6_vandvrt (HiVec $Vss), (ToI32 0x01010101))),
617+ (VecQ32 (V6_vandvrt (LoVec $Vss), (ToI32 0x01010101))))>;
615618}
616619
617620let Predicates = [UseHVX] in {
Original file line number Diff line number Diff line change 1+ ; RUN: llc --mtriple=hexagon -mattr=+hvxv79,+hvx-length128b < %s | FileCheck %s
2+
3+ define void @f5 (<64 x i32 > %a0 , ptr %a1 ) {
4+ ; CHECK-LABEL: f5:
5+ ; CHECK: [[REG0:(r[0-9]+)]] = ##16843009
6+ ; CHECK-DAG: q[[Q0:[0-9]+]] = vand(v{{[0-9]+}},[[REG0]])
7+ ; CHECK-DAG: q[[Q1:[0-9]+]] = vand(v{{[0-9]+}},[[REG0]])
8+ ; CHECK: v{{[0-9]+}}.b = vpacke(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
9+ ; CHECK: v{{[0-9]+}}.b = vpacke(v{{[0-9]+}}.h,v{{[0-9]+}}.h)
10+ ; CHECK: v[[VROR:[0-9]+]] = vror(v{{[0-9]+}},r{{[0-9]+}})
11+ ; CHECK: v[[VOR:[0-9]+]] = vor(v[[VROR]],v{{[0-9]+}})
12+ ; CHECK: q{{[0-9]+}} = vand(v[[VOR]],r{{[0-9]+}})
13+ b0:
14+ %v0 = trunc <64 x i32 > %a0 to <64 x i1 >
15+ store <64 x i1 > %v0 , ptr %a1 , align 1
16+ ret void
17+ }
18+
You can’t perform that action at this time.
0 commit comments