[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / isel / trunc-vNi1.ll
blob1394d49587de29a9f43191485b64cefdd9961263
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc -march=hexagon < %s | FileCheck %s
4 define void @f0(<2 x i32> %a0, ptr %a1) {
5 ; CHECK-LABEL: f0:
6 ; CHECK:         .cfi_startproc
7 ; CHECK-NEXT:  // %bb.0: // %b0
8 ; CHECK-NEXT:    {
9 ; CHECK-NEXT:     r5:4 = combine(#1,#1)
10 ; CHECK-NEXT:    }
11 ; CHECK-NEXT:    {
12 ; CHECK-NEXT:     r1:0 = and(r1:0,r5:4)
13 ; CHECK-NEXT:    }
14 ; CHECK-NEXT:    {
15 ; CHECK-NEXT:     p0 = vcmpw.eq(r1:0,#1)
16 ; CHECK-NEXT:    }
17 ; CHECK-NEXT:    {
18 ; CHECK-NEXT:     r0 = p0
19 ; CHECK-NEXT:     jumpr r31
20 ; CHECK-NEXT:     memb(r2+#0) = r0.new
21 ; CHECK-NEXT:    }
22 b0:
23   %v0 = trunc <2 x i32> %a0 to <2 x i1>
24   store <2 x i1> %v0, ptr %a1, align 1
25   ret void
28 define void @f1(<4 x i16> %a0, ptr %a1) {
29 ; CHECK-LABEL: f1:
30 ; CHECK:         .cfi_startproc
31 ; CHECK-NEXT:  // %bb.0: // %b0
32 ; CHECK-NEXT:    {
33 ; CHECK-NEXT:     r0 = and(r0,##65537)
34 ; CHECK-NEXT:     r1 = and(r1,##65537)
35 ; CHECK-NEXT:    }
36 ; CHECK-NEXT:    {
37 ; CHECK-NEXT:     p0 = vcmph.eq(r1:0,#1)
38 ; CHECK-NEXT:    }
39 ; CHECK-NEXT:    {
40 ; CHECK-NEXT:     r0 = p0
41 ; CHECK-NEXT:     jumpr r31
42 ; CHECK-NEXT:     memb(r2+#0) = r0.new
43 ; CHECK-NEXT:    }
44 b0:
45   %v0 = trunc <4 x i16> %a0 to <4 x i1>
46   store <4 x i1> %v0, ptr %a1, align 1
47   ret void
50 define void @f2(<8 x i8> %a0, ptr %a1) {
51 ; CHECK-LABEL: f2:
52 ; CHECK:         .cfi_startproc
53 ; CHECK-NEXT:  // %bb.0: // %b0
54 ; CHECK-NEXT:    {
55 ; CHECK-NEXT:     r0 = and(r0,##16843009)
56 ; CHECK-NEXT:     r1 = and(r1,##16843009)
57 ; CHECK-NEXT:    }
58 ; CHECK-NEXT:    {
59 ; CHECK-NEXT:     p0 = vcmpb.eq(r1:0,#1)
60 ; CHECK-NEXT:    }
61 ; CHECK-NEXT:    {
62 ; CHECK-NEXT:     r0 = p0
63 ; CHECK-NEXT:     jumpr r31
64 ; CHECK-NEXT:     memb(r2+#0) = r0.new
65 ; CHECK-NEXT:    }
66 b0:
67   %v0 = trunc <8 x i8> %a0 to <8 x i1>
68   store <8 x i1> %v0, ptr %a1, align 1
69   ret void