1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
9 tracksRegLiveness: true
12 liveins: $d0, $d1, $d2
14 ; CHECK-LABEL: name: BITv8i8_v2s32
15 ; CHECK: liveins: $d0, $d1, $d2
16 ; CHECK: %lhs:fpr64 = COPY $d0
17 ; CHECK: %mhs:fpr64 = COPY $d1
18 ; CHECK: %rhs:fpr64 = COPY $d2
19 ; CHECK: %bit:fpr64 = BITv8i8 %lhs, %mhs, %rhs
20 ; CHECK: $d0 = COPY %bit
21 ; CHECK: RET_ReallyLR implicit $d0
22 %lhs:fpr(<2 x s32>) = COPY $d0
23 %mhs:fpr(<2 x s32>) = COPY $d1
24 %rhs:fpr(<2 x s32>) = COPY $d2
25 %bit:fpr(<2 x s32>) = G_BIT %lhs, %mhs, %rhs
26 $d0 = COPY %bit(<2 x s32>)
27 RET_ReallyLR implicit $d0
34 tracksRegLiveness: true
37 liveins: $d0, $d1, $d2
38 ; CHECK-LABEL: name: BITv8i8_v4s16
39 ; CHECK: liveins: $d0, $d1, $d2
40 ; CHECK: %lhs:fpr64 = COPY $d0
41 ; CHECK: %mhs:fpr64 = COPY $d1
42 ; CHECK: %rhs:fpr64 = COPY $d2
43 ; CHECK: %bit:fpr64 = BITv8i8 %lhs, %mhs, %rhs
44 ; CHECK: $d0 = COPY %bit
45 ; CHECK: RET_ReallyLR implicit $d0
46 %lhs:fpr(<4 x s16>) = COPY $d0
47 %mhs:fpr(<4 x s16>) = COPY $d1
48 %rhs:fpr(<4 x s16>) = COPY $d2
49 %bit:fpr(<4 x s16>) = G_BIT %lhs, %mhs, %rhs
50 $d0 = COPY %bit(<4 x s16>)
51 RET_ReallyLR implicit $d0
58 tracksRegLiveness: true
61 liveins: $q0, $q1, $q2
63 ; CHECK-LABEL: name: BITv16i8_v2s64
64 ; CHECK: liveins: $q0, $q1, $q2
65 ; CHECK: %lhs:fpr128 = COPY $q0
66 ; CHECK: %mhs:fpr128 = COPY $q1
67 ; CHECK: %rhs:fpr128 = COPY $q2
68 ; CHECK: %bit:fpr128 = BITv16i8 %lhs, %mhs, %rhs
69 ; CHECK: $q0 = COPY %bit
70 ; CHECK: RET_ReallyLR implicit $q0
71 %lhs:fpr(<2 x s64>) = COPY $q0
72 %mhs:fpr(<2 x s64>) = COPY $q1
73 %rhs:fpr(<2 x s64>) = COPY $q2
74 %bit:fpr(<2 x s64>) = G_BIT %lhs, %mhs, %rhs
75 $q0 = COPY %bit(<2 x s64>)
76 RET_ReallyLR implicit $q0
83 tracksRegLiveness: true
86 liveins: $q0, $q1, $q2
88 ; CHECK-LABEL: name: BITv16i8_v4s32
89 ; CHECK: liveins: $q0, $q1, $q2
90 ; CHECK: %lhs:fpr128 = COPY $q0
91 ; CHECK: %mhs:fpr128 = COPY $q1
92 ; CHECK: %rhs:fpr128 = COPY $q2
93 ; CHECK: %bit:fpr128 = BITv16i8 %lhs, %mhs, %rhs
94 ; CHECK: $q0 = COPY %bit
95 ; CHECK: RET_ReallyLR implicit $q0
96 %lhs:fpr(<4 x s32>) = COPY $q0
97 %mhs:fpr(<4 x s32>) = COPY $q1
98 %rhs:fpr(<4 x s32>) = COPY $q2
99 %bit:fpr(<4 x s32>) = G_BIT %lhs, %mhs, %rhs
100 $q0 = COPY %bit(<4 x s32>)
101 RET_ReallyLR implicit $q0
107 regBankSelected: true
108 tracksRegLiveness: true
111 liveins: $q0, $q1, $q2
113 ; CHECK-LABEL: name: BITv16i8_v8s16
114 ; CHECK: liveins: $q0, $q1, $q2
115 ; CHECK: %lhs:fpr128 = COPY $q0
116 ; CHECK: %mhs:fpr128 = COPY $q1
117 ; CHECK: %rhs:fpr128 = COPY $q2
118 ; CHECK: %bit:fpr128 = BITv16i8 %lhs, %mhs, %rhs
119 ; CHECK: $q0 = COPY %bit
120 ; CHECK: RET_ReallyLR implicit $q0
121 %lhs:fpr(<8 x s16>) = COPY $q0
122 %mhs:fpr(<8 x s16>) = COPY $q1
123 %rhs:fpr(<8 x s16>) = COPY $q2
124 %bit:fpr(<8 x s16>) = G_BIT %lhs, %mhs, %rhs
125 $q0 = COPY %bit(<8 x s16>)
126 RET_ReallyLR implicit $q0
132 regBankSelected: true
133 tracksRegLiveness: true
136 liveins: $q0, $q1, $q2
138 ; CHECK-LABEL: name: BITv16i8_v16s8
139 ; CHECK: liveins: $q0, $q1, $q2
140 ; CHECK: %lhs:fpr128 = COPY $q0
141 ; CHECK: %mhs:fpr128 = COPY $q1
142 ; CHECK: %rhs:fpr128 = COPY $q2
143 ; CHECK: %bit:fpr128 = BITv16i8 %lhs, %mhs, %rhs
144 ; CHECK: $q0 = COPY %bit
145 ; CHECK: RET_ReallyLR implicit $q0
146 %lhs:fpr(<16 x s8>) = COPY $q0
147 %mhs:fpr(<16 x s8>) = COPY $q1
148 %rhs:fpr(<16 x s8>) = COPY $q2
149 %bit:fpr(<16 x s8>) = G_BIT %lhs, %mhs, %rhs
150 $q0 = COPY %bit(<16 x s8>)
151 RET_ReallyLR implicit $q0