344 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=legalizer %s -o - | FileCheck %s3---4name: test_scalar_xor_small5body: |6 bb.0.entry:7 ; CHECK-LABEL: name: test_scalar_xor_small8 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x09 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x110 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)11 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)12 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[TRUNC]], [[TRUNC1]]13 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[XOR]](s32)14 ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64)15 %0:_(s64) = COPY $x016 %1:_(s64) = COPY $x117 %2:_(s8) = G_TRUNC %0(s64)18 %3:_(s8) = G_TRUNC %1(s64)19 %4:_(s8) = G_XOR %2, %320 %5:_(s64) = G_ANYEXT %4(s8)21 $x0 = COPY %5(s64)22 23...24---25name: test_s318_xor26tracksRegLiveness: true27body: |28 bb.0:29 liveins: $x030 ; CHECK-LABEL: name: test_s318_xor31 ; CHECK: liveins: $x032 ; CHECK-NEXT: {{ $}}33 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF34 ; CHECK-NEXT: %ptr:_(p0) = COPY $x035 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]36 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]37 ; CHECK-NEXT: [[XOR2:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]38 ; CHECK-NEXT: [[XOR3:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]39 ; CHECK-NEXT: [[XOR4:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]40 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -141 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 461168601842738790342 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]43 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR1]], [[C]]44 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[XOR2]], [[C]]45 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND [[XOR3]], [[C]]46 ; CHECK-NEXT: [[AND4:%[0-9]+]]:_(s64) = G_AND [[XOR4]], [[C1]]47 ; CHECK-NEXT: G_STORE [[AND]](s64), %ptr(p0) :: (store (s64), align 64)48 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 849 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C2]](s64)50 ; CHECK-NEXT: G_STORE [[AND1]](s64), [[PTR_ADD]](p0) :: (store (s64) into unknown-address + 8)51 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 1652 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C3]](s64)53 ; CHECK-NEXT: G_STORE [[AND2]](s64), [[PTR_ADD1]](p0) :: (store (s64) into unknown-address + 16, align 16)54 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 2455 ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C4]](s64)56 ; CHECK-NEXT: G_STORE [[AND3]](s64), [[PTR_ADD2]](p0) :: (store (s64) into unknown-address + 24)57 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 3258 ; CHECK-NEXT: [[PTR_ADD3:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C5]](s64)59 ; CHECK-NEXT: G_STORE [[AND4]](s64), [[PTR_ADD3]](p0) :: (store (s64) into unknown-address + 32, align 32)60 ; CHECK-NEXT: RET_ReallyLR implicit $x061 %a:_(s318) = G_IMPLICIT_DEF62 %b:_(s318) = G_IMPLICIT_DEF63 %ptr:_(p0) = COPY $x064 %xor:_(s318) = G_XOR %a, %b65 G_STORE %xor(s318), %ptr(p0) :: (store (s318))66 RET_ReallyLR implicit $x067...68---69name: test_s319_xor70tracksRegLiveness: true71body: |72 bb.0:73 liveins: $x074 ; CHECK-LABEL: name: test_s319_xor75 ; CHECK: liveins: $x076 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF78 ; CHECK-NEXT: %ptr:_(p0) = COPY $x079 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]80 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]81 ; CHECK-NEXT: [[XOR2:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]82 ; CHECK-NEXT: [[XOR3:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]83 ; CHECK-NEXT: [[XOR4:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]84 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -185 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 922337203685477580786 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]87 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR1]], [[C]]88 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[XOR2]], [[C]]89 ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s64) = G_AND [[XOR3]], [[C]]90 ; CHECK-NEXT: [[AND4:%[0-9]+]]:_(s64) = G_AND [[XOR4]], [[C1]]91 ; CHECK-NEXT: G_STORE [[AND]](s64), %ptr(p0) :: (store (s64), align 64)92 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 893 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C2]](s64)94 ; CHECK-NEXT: G_STORE [[AND1]](s64), [[PTR_ADD]](p0) :: (store (s64) into unknown-address + 8)95 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 1696 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C3]](s64)97 ; CHECK-NEXT: G_STORE [[AND2]](s64), [[PTR_ADD1]](p0) :: (store (s64) into unknown-address + 16, align 16)98 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 2499 ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C4]](s64)100 ; CHECK-NEXT: G_STORE [[AND3]](s64), [[PTR_ADD2]](p0) :: (store (s64) into unknown-address + 24)101 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 32102 ; CHECK-NEXT: [[PTR_ADD3:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C5]](s64)103 ; CHECK-NEXT: G_STORE [[AND4]](s64), [[PTR_ADD3]](p0) :: (store (s64) into unknown-address + 32, align 32)104 ; CHECK-NEXT: RET_ReallyLR implicit $x0105 %a:_(s319) = G_IMPLICIT_DEF106 %b:_(s319) = G_IMPLICIT_DEF107 %ptr:_(p0) = COPY $x0108 %xor:_(s319) = G_XOR %a, %b109 G_STORE %xor(s319), %ptr(p0) :: (store (s319))110 RET_ReallyLR implicit $x0111...112---113name: test_s158_xor114tracksRegLiveness: true115body: |116 bb.0:117 liveins: $x0118 ; CHECK-LABEL: name: test_s158_xor119 ; CHECK: liveins: $x0120 ; CHECK-NEXT: {{ $}}121 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF122 ; CHECK-NEXT: %ptr:_(p0) = COPY $x0123 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]124 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]125 ; CHECK-NEXT: [[XOR2:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]126 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1127 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1073741823128 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]129 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR1]], [[C]]130 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[XOR2]], [[C1]]131 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY [[AND]](s64)132 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[AND1]](s64)133 ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s32) = G_EXTRACT [[AND2]](s64), 0134 ; CHECK-NEXT: G_STORE [[COPY]](s64), %ptr(p0) :: (store (s64), align 32)135 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 8136 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C2]](s64)137 ; CHECK-NEXT: G_STORE [[COPY1]](s64), [[PTR_ADD]](p0) :: (store (s64) into unknown-address + 8)138 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 16139 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD %ptr, [[C3]](s64)140 ; CHECK-NEXT: G_STORE [[EXTRACT]](s32), [[PTR_ADD1]](p0) :: (store (s32) into unknown-address + 16, align 16)141 ; CHECK-NEXT: RET_ReallyLR implicit $x0142 %a:_(s158) = G_IMPLICIT_DEF143 %b:_(s158) = G_IMPLICIT_DEF144 %ptr:_(p0) = COPY $x0145 %xor:_(s158) = G_XOR %a, %b146 G_STORE %xor(s158), %ptr(p0) :: (store (s158))147 RET_ReallyLR implicit $x0148 149...150---151name: test_vector_xor_v16s16152body: |153 bb.0.entry:154 ; CHECK-LABEL: name: test_vector_xor_v16s16155 ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0156 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q1157 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<8 x s16>) = G_XOR [[COPY]], [[COPY]]158 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(<8 x s16>) = G_XOR [[COPY1]], [[COPY1]]159 ; CHECK-NEXT: $q0 = COPY [[XOR]](<8 x s16>)160 ; CHECK-NEXT: $q1 = COPY [[XOR1]](<8 x s16>)161 %1:_(<8 x s16>) = COPY $q0162 %2:_(<8 x s16>) = COPY $q1163 %0:_(<16 x s16>) = G_CONCAT_VECTORS %1(<8 x s16>), %2(<8 x s16>)164 %3:_(<16 x s16>) = G_XOR %0, %0165 %4:_(<8 x s16>), %5:_(<8 x s16>) = G_UNMERGE_VALUES %3(<16 x s16>)166 $q0 = COPY %4(<8 x s16>)167 $q1 = COPY %5(<8 x s16>)168 169...170---171name: test_vector_xor_v32s8172body: |173 bb.0.entry:174 ; CHECK-LABEL: name: test_vector_xor_v32s8175 ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0176 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1177 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<16 x s8>) = G_XOR [[COPY]], [[COPY]]178 ; CHECK-NEXT: [[XOR1:%[0-9]+]]:_(<16 x s8>) = G_XOR [[COPY1]], [[COPY1]]179 ; CHECK-NEXT: $q0 = COPY [[XOR]](<16 x s8>)180 ; CHECK-NEXT: $q1 = COPY [[XOR1]](<16 x s8>)181 %0:_(<16 x s8>) = COPY $q0182 %1:_(<16 x s8>) = COPY $q1183 %2:_(<32 x s8>) = G_CONCAT_VECTORS %0, %1184 %3:_(<32 x s8>) = G_XOR %2, %2185 %7:_(<16 x s8>), %8:_(<16 x s8>) = G_UNMERGE_VALUES %3(<32 x s8>)186 $q0 = COPY %7(<16 x s8>)187 $q1 = COPY %8(<16 x s8>)188 189...190---191name: xor_v2s1192tracksRegLiveness: true193body: |194 bb.1:195 liveins: $d0, $d1, $d2, $d3196 197 ; CHECK-LABEL: name: xor_v2s1198 ; CHECK: liveins: $d0, $d1, $d2, $d3199 ; CHECK-NEXT: {{ $}}200 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0201 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1202 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $d2203 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s32>) = COPY $d3204 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY]](<2 x s32>), [[COPY1]]205 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY2]](<2 x s32>), [[COPY3]]206 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<2 x s32>) = G_XOR [[ICMP]], [[ICMP1]]207 ; CHECK-NEXT: $d0 = COPY [[XOR]](<2 x s32>)208 ; CHECK-NEXT: RET_ReallyLR implicit $d0209 %0:_(<2 x s32>) = COPY $d0210 %1:_(<2 x s32>) = COPY $d1211 %2:_(<2 x s32>) = COPY $d2212 %3:_(<2 x s32>) = COPY $d3213 %4:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s32>), %1214 %5:_(<2 x s1>) = G_ICMP intpred(eq), %2(<2 x s32>), %3215 %6:_(<2 x s1>) = G_XOR %4, %5216 %7:_(<2 x s32>) = G_ANYEXT %6217 $d0 = COPY %7:_(<2 x s32>)218 RET_ReallyLR implicit $d0219...220---221name: xor_v3s1222tracksRegLiveness: true223body: |224 bb.1:225 liveins: $b0, $b1, $b2226 227 ; CHECK-LABEL: name: xor_v3s1228 ; CHECK: liveins: $b0, $b1, $b2229 ; CHECK-NEXT: {{ $}}230 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $b0231 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s8) = COPY $b1232 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s8) = COPY $b2233 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)234 ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY1]](s8)235 ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY2]](s8)236 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF237 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s16>) = G_BUILD_VECTOR [[ANYEXT]](s16), [[ANYEXT1]](s16), [[ANYEXT2]](s16), [[DEF]](s16)238 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<4 x s16>) = G_XOR [[BUILD_VECTOR]], [[BUILD_VECTOR]]239 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16), [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[XOR]](<4 x s16>)240 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[UV]](s16)241 ; CHECK-NEXT: $b0 = COPY [[TRUNC]](s8)242 ; CHECK-NEXT: RET_ReallyLR implicit $b0243 %1:_(s8) = COPY $b0244 %2:_(s8) = COPY $b1245 %3:_(s8) = COPY $b2246 %4:_(<3 x s8>) = G_BUILD_VECTOR %1(s8), %2(s8), %3(s8)247 %0:_(<3 x s1>) = G_TRUNC %4(<3 x s8>)248 %5:_(<3 x s1>) = G_XOR %0, %0249 %7:_(<3 x s8>) = G_ANYEXT %5(<3 x s1>)250 %8:_(s8), %9:_(s8), %10:_(s8) = G_UNMERGE_VALUES %7(<3 x s8>)251 $b0 = COPY %8:_(s8)252 RET_ReallyLR implicit $b0253...254---255name: xor_v4s1256tracksRegLiveness: true257body: |258 bb.1:259 liveins: $d0, $d1, $d2, $d3260 261 ; CHECK-LABEL: name: xor_v4s1262 ; CHECK: liveins: $d0, $d1, $d2, $d3263 ; CHECK-NEXT: {{ $}}264 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0265 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1266 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY $d2267 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s16>) = COPY $d3268 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY]](<4 x s16>), [[COPY1]]269 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY2]](<4 x s16>), [[COPY3]]270 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<4 x s16>) = G_XOR [[ICMP]], [[ICMP1]]271 ; CHECK-NEXT: $d0 = COPY [[XOR]](<4 x s16>)272 ; CHECK-NEXT: RET_ReallyLR implicit $d0273 %0:_(<4 x s16>) = COPY $d0274 %1:_(<4 x s16>) = COPY $d1275 %2:_(<4 x s16>) = COPY $d2276 %3:_(<4 x s16>) = COPY $d3277 %4:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s16>), %1278 %5:_(<4 x s1>) = G_ICMP intpred(eq), %2(<4 x s16>), %3279 %6:_(<4 x s1>) = G_XOR %4, %5280 %7:_(<4 x s16>) = G_ANYEXT %6281 $d0 = COPY %7:_(<4 x s16>)282 RET_ReallyLR implicit $d0283...284---285name: xor_v8s1286tracksRegLiveness: true287body: |288 bb.1:289 liveins: $d0, $d1, $d2, $d3290 291 ; CHECK-LABEL: name: xor_v8s1292 ; CHECK: liveins: $d0, $d1, $d2, $d3293 ; CHECK-NEXT: {{ $}}294 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0295 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1296 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY $d2297 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<8 x s8>) = COPY $d3298 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY]](<8 x s8>), [[COPY1]]299 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY2]](<8 x s8>), [[COPY3]]300 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<8 x s8>) = G_XOR [[ICMP]], [[ICMP1]]301 ; CHECK-NEXT: $d0 = COPY [[XOR]](<8 x s8>)302 ; CHECK-NEXT: RET_ReallyLR implicit $d0303 %0:_(<8 x s8>) = COPY $d0304 %1:_(<8 x s8>) = COPY $d1305 %2:_(<8 x s8>) = COPY $d2306 %3:_(<8 x s8>) = COPY $d3307 %4:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s8>), %1308 %5:_(<8 x s1>) = G_ICMP intpred(eq), %2(<8 x s8>), %3309 %6:_(<8 x s1>) = G_XOR %4, %5310 %7:_(<8 x s8>) = G_ANYEXT %6311 $d0 = COPY %7:_(<8 x s8>)312 RET_ReallyLR implicit $d0313...314---315name: xor_v16s1316tracksRegLiveness: true317body: |318 bb.1:319 liveins: $q0, $q1, $q2, $q3320 321 ; CHECK-LABEL: name: xor_v16s1322 ; CHECK: liveins: $q0, $q1, $q2, $q3323 ; CHECK-NEXT: {{ $}}324 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0325 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1326 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY $q2327 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<16 x s8>) = COPY $q3328 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY]](<16 x s8>), [[COPY1]]329 ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY2]](<16 x s8>), [[COPY3]]330 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(<16 x s8>) = G_XOR [[ICMP]], [[ICMP1]]331 ; CHECK-NEXT: $q0 = COPY [[XOR]](<16 x s8>)332 ; CHECK-NEXT: RET_ReallyLR implicit $q0333 %0:_(<16 x s8>) = COPY $q0334 %1:_(<16 x s8>) = COPY $q1335 %2:_(<16 x s8>) = COPY $q2336 %3:_(<16 x s8>) = COPY $q3337 %4:_(<16 x s1>) = G_ICMP intpred(eq), %0(<16 x s8>), %1338 %5:_(<16 x s1>) = G_ICMP intpred(eq), %2(<16 x s8>), %3339 %6:_(<16 x s1>) = G_XOR %4, %5340 %7:_(<16 x s8>) = G_ANYEXT %6341 $q0 = COPY %7:_(<16 x s8>)342 RET_ReallyLR implicit $q0343...344