|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
|
2 | 2 | ; RUN: llc -mtriple=hexagon < %s | FileCheck %s
|
| 3 | +; RUN: llc --mtriple=hexagon -mattr=+hvxv79,+hvx-length128b < %s | FileCheck %s |
3 | 4 |
|
4 | 5 | define void @f0(<2 x i32> %a0, ptr %a1) {
|
5 | 6 | ; CHECK-LABEL: f0:
|
|
68 | 69 | store <8 x i1> %v0, ptr %a1, align 1
|
69 | 70 | ret void
|
70 | 71 | }
|
| 72 | + |
| 73 | +define void @f3(<4 x i8> %a0, ptr %a1) { |
| 74 | +; CHECK-LABEL: f3: |
| 75 | +; CHECK: .cfi_startproc |
| 76 | +; CHECK-NEXT: // %bb.0: // %b0 |
| 77 | +; CHECK-NEXT: { |
| 78 | +; CHECK-NEXT: r3:2 = vzxtbh(r0) |
| 79 | +; CHECK-NEXT: } |
| 80 | +; CHECK-NEXT: { |
| 81 | +; CHECK-NEXT: r2 = and(r2,##65537) |
| 82 | +; CHECK-NEXT: r3 = and(r3,##65537) |
| 83 | +; CHECK-NEXT: } |
| 84 | +; CHECK-NEXT: { |
| 85 | +; CHECK-NEXT: p0 = vcmph.eq(r3:2,#1) |
| 86 | +; CHECK-NEXT: } |
| 87 | +; CHECK-NEXT: { |
| 88 | +; CHECK-NEXT: r2 = p0 |
| 89 | +; CHECK-NEXT: jumpr r31 |
| 90 | +; CHECK-NEXT: memb(r1+#0) = r2.new |
| 91 | +; CHECK-NEXT: } |
| 92 | +b0: |
| 93 | + %v0 = trunc <4 x i8> %a0 to <4 x i1> |
| 94 | + store <4 x i1> %v0, ptr %a1, align 1 |
| 95 | + ret void |
| 96 | +} |
| 97 | + |
| 98 | +define void @f4(<2 x i16> %a0, ptr %a1) { |
| 99 | +; CHECK-LABEL: f4: |
| 100 | +; CHECK: .cfi_startproc |
| 101 | +; CHECK-NEXT: // %bb.0: // %b0 |
| 102 | +; CHECK-NEXT: { |
| 103 | +; CHECK-NEXT: r3:2 = vzxthw(r0) |
| 104 | +; CHECK-NEXT: r5:4 = combine(#1,#1) |
| 105 | +; CHECK-NEXT: } |
| 106 | +; CHECK-NEXT: { |
| 107 | +; CHECK-NEXT: r3:2 = and(r3:2,r5:4) |
| 108 | +; CHECK-NEXT: } |
| 109 | +; CHECK-NEXT: { |
| 110 | +; CHECK-NEXT: p0 = vcmpw.eq(r3:2,#1) |
| 111 | +; CHECK-NEXT: } |
| 112 | +; CHECK-NEXT: { |
| 113 | +; CHECK-NEXT: r2 = p0 |
| 114 | +; CHECK-NEXT: jumpr r31 |
| 115 | +; CHECK-NEXT: memb(r1+#0) = r2.new |
| 116 | +; CHECK-NEXT: } |
| 117 | +b0: |
| 118 | + %v0 = trunc <2 x i16> %a0 to <2 x i1> |
| 119 | + store <2 x i1> %v0, ptr %a1, align 1 |
| 120 | + ret void |
| 121 | +} |
0 commit comments