1490 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s | FileCheck %s3 4...5---6name: freeze_register7body: |8 bb.1:9 liveins: $w010 11 ; CHECK-LABEL: name: freeze_register12 ; CHECK: liveins: $w013 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x015 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]16 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)17 ; CHECK-NEXT: RET_ReallyLR implicit $x018 %0:_(s64) = COPY $x019 %1:_(s64) = G_FREEZE %020 $x0 = COPY %1(s64)21 RET_ReallyLR implicit $x022 23...24---25name: freeze_constant26body: |27 bb.1:28 liveins: $w029 30 ; CHECK-LABEL: name: freeze_constant31 ; CHECK: liveins: $w032 ; CHECK-NEXT: {{ $}}33 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 934 ; CHECK-NEXT: $x0 = COPY [[C]](s64)35 ; CHECK-NEXT: RET_ReallyLR implicit $x036 %1:_(s64) = G_CONSTANT i64 937 %2:_(s64) = G_FREEZE %138 $x0 = COPY %2(s64)39 RET_ReallyLR implicit $x040 41...42---43name: freeze_fconstant44body: |45 bb.1:46 liveins: $w047 48 ; CHECK-LABEL: name: freeze_fconstant49 ; CHECK: liveins: $w050 ; CHECK-NEXT: {{ $}}51 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 9.000000e+0052 ; CHECK-NEXT: $x0 = COPY [[C]](s64)53 ; CHECK-NEXT: RET_ReallyLR implicit $x054 %1:_(s64) = G_FCONSTANT double 9.055 %2:_(s64) = G_FREEZE %156 $x0 = COPY %2(s64)57 RET_ReallyLR implicit $x058...59---60name: freeze_undef61body: |62 bb.1:63 liveins: $w064 65 ; CHECK-LABEL: name: freeze_undef66 ; CHECK: liveins: $w067 ; CHECK-NEXT: {{ $}}68 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF69 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[DEF]]70 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)71 ; CHECK-NEXT: RET_ReallyLR implicit $x072 %1:_(s64) = G_IMPLICIT_DEF73 %2:_(s64) = G_FREEZE %174 $x0 = COPY %2(s64)75 RET_ReallyLR implicit $x076...77---78name: freeze_freeze79body: |80 bb.1:81 liveins: $w082 83 ; CHECK-LABEL: name: freeze_freeze84 ; CHECK: liveins: $w085 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x087 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]88 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)89 ; CHECK-NEXT: RET_ReallyLR implicit $x090 %0:_(s64) = COPY $x091 %1:_(s64) = G_FREEZE %092 %2:_(s64) = G_FREEZE %193 $x0 = COPY %2(s64)94 RET_ReallyLR implicit $x095...96---97name: freeze_buildvector98body: |99 bb.1:100 liveins: $w0101 102 ; CHECK-LABEL: name: freeze_buildvector103 ; CHECK: liveins: $w0104 ; CHECK-NEXT: {{ $}}105 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0106 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY]](s32), [[COPY]](s32), [[COPY]](s32)107 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s32>) = G_FREEZE [[BUILD_VECTOR]]108 ; CHECK-NEXT: $q0 = COPY [[FREEZE]](<4 x s32>)109 ; CHECK-NEXT: RET_ReallyLR implicit $q0110 %0:_(s32) = COPY $w0111 %1:_(<4 x s32>) = G_BUILD_VECTOR %0(s32), %0(s32), %0(s32), %0(s32)112 %2:_(<4 x s32>) = G_FREEZE %1113 $q0 = COPY %2(<4 x s32>)114 RET_ReallyLR implicit $q0115...116---117name: freeze_buildvector_const118body: |119 bb.1:120 liveins: $w0121 122 ; CHECK-LABEL: name: freeze_buildvector_const123 ; CHECK: liveins: $w0124 ; CHECK-NEXT: {{ $}}125 ; CHECK-NEXT: %c:_(s32) = G_CONSTANT i32 6126 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR %c(s32), %c(s32), %c(s32), %c(s32)127 ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<4 x s32>)128 ; CHECK-NEXT: RET_ReallyLR implicit $q0129 %0:_(s32) = COPY $w0130 %c:_(s32) = G_CONSTANT i32 6131 %1:_(<4 x s32>) = G_BUILD_VECTOR %c(s32), %c(s32), %c(s32), %c(s32)132 %2:_(<4 x s32>) = G_FREEZE %1133 $q0 = COPY %2(<4 x s32>)134 RET_ReallyLR implicit $q0135...136---137name: freeze_disjoint_or_fold_barrier138body: |139 bb.1:140 liveins: $w0141 142 ; CHECK-LABEL: name: freeze_disjoint_or_fold_barrier143 ; CHECK: liveins: $w0144 ; CHECK-NEXT: {{ $}}145 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9146 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst147 ; CHECK-NEXT: $x0 = COPY %c(s64)148 ; CHECK-NEXT: RET_ReallyLR implicit $x0149 %0:_(s64) = COPY $x0150 %cst:_(s64) = G_CONSTANT i64 9151 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst152 %1:_(s64) = disjoint G_OR %c, %c153 %2:_(s64) = G_FREEZE %1154 $x0 = COPY %2(s64)155 RET_ReallyLR implicit $x0156...157---158name: freeze_or_fold_barrier159body: |160 bb.1:161 liveins: $w0162 163 ; CHECK-LABEL: name: freeze_or_fold_barrier164 ; CHECK: liveins: $w0165 ; CHECK-NEXT: {{ $}}166 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9167 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst168 ; CHECK-NEXT: $x0 = COPY %c(s64)169 ; CHECK-NEXT: RET_ReallyLR implicit $x0170 %0:_(s64) = COPY $x0171 %cst:_(s64) = G_CONSTANT i64 9172 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst173 %1:_(s64) = G_OR %c, %c174 %2:_(s64) = G_FREEZE %1175 $x0 = COPY %2(s64)176 RET_ReallyLR implicit $x0177...178---179name: freeze_nneg_zext_fold_barrier180body: |181 bb.1:182 liveins: $w0183 184 ; CHECK-LABEL: name: freeze_nneg_zext_fold_barrier185 ; CHECK: liveins: $w0186 ; CHECK-NEXT: {{ $}}187 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 9188 ; CHECK-NEXT: %c:_(s32) = G_CONSTANT_FOLD_BARRIER %cst189 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT %c(s32)190 ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)191 ; CHECK-NEXT: RET_ReallyLR implicit $x0192 %0:_(s64) = COPY $x0193 %cst:_(s32) = G_CONSTANT i32 9194 %c:_(s32) = G_CONSTANT_FOLD_BARRIER %cst195 %1:_(s64) = nneg G_ZEXT %c196 %2:_(s64) = G_FREEZE %1197 $x0 = COPY %2(s64)198 RET_ReallyLR implicit $x0199...200---201name: freeze_zext_fold_barrier202body: |203 bb.1:204 liveins: $w0205 206 ; CHECK-LABEL: name: freeze_zext_fold_barrier207 ; CHECK: liveins: $w0208 ; CHECK-NEXT: {{ $}}209 ; CHECK-NEXT: %cst:_(s32) = G_CONSTANT i32 9210 ; CHECK-NEXT: %c:_(s32) = G_CONSTANT_FOLD_BARRIER %cst211 ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT %c(s32)212 ; CHECK-NEXT: $x0 = COPY [[ZEXT]](s64)213 ; CHECK-NEXT: RET_ReallyLR implicit $x0214 %0:_(s64) = COPY $x0215 %cst:_(s32) = G_CONSTANT i32 9216 %c:_(s32) = G_CONSTANT_FOLD_BARRIER %cst217 %1:_(s64) = G_ZEXT %c218 %2:_(s64) = G_FREEZE %1219 $x0 = COPY %2(s64)220 RET_ReallyLR implicit $x0221...222---223name: freeze_udiv_fold_barrier224body: |225 bb.1:226 liveins: $w0227 228 ; CHECK-LABEL: name: freeze_udiv_fold_barrier229 ; CHECK: liveins: $w0230 ; CHECK-NEXT: {{ $}}231 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9232 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst233 ; CHECK-NEXT: [[UDIV:%[0-9]+]]:_(s64) = G_UDIV %c, %c234 ; CHECK-NEXT: $x0 = COPY [[UDIV]](s64)235 ; CHECK-NEXT: RET_ReallyLR implicit $x0236 %0:_(s64) = COPY $x0237 %cst:_(s64) = G_CONSTANT i64 9238 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst239 %1:_(s64) = G_UDIV %c, %c240 %2:_(s64) = G_FREEZE %1241 $x0 = COPY %2(s64)242 RET_ReallyLR implicit $x0243...244---245name: freeze_exact_udiv_fold_barrier246body: |247 bb.1:248 liveins: $w0249 250 ; CHECK-LABEL: name: freeze_exact_udiv_fold_barrier251 ; CHECK: liveins: $w0252 ; CHECK-NEXT: {{ $}}253 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9254 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst255 ; CHECK-NEXT: [[UDIV:%[0-9]+]]:_(s64) = G_UDIV %c, %c256 ; CHECK-NEXT: $x0 = COPY [[UDIV]](s64)257 ; CHECK-NEXT: RET_ReallyLR implicit $x0258 %0:_(s64) = COPY $x0259 %cst:_(s64) = G_CONSTANT i64 9260 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst261 %1:_(s64) = exact G_UDIV %c, %c262 %2:_(s64) = G_FREEZE %1263 $x0 = COPY %2(s64)264 RET_ReallyLR implicit $x0265...266---267name: freeze_mul_fold_barrier268body: |269 bb.1:270 liveins: $w0271 272 ; CHECK-LABEL: name: freeze_mul_fold_barrier273 ; CHECK: liveins: $w0274 ; CHECK-NEXT: {{ $}}275 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9276 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst277 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s64) = G_MUL %c, %c278 ; CHECK-NEXT: $x0 = COPY [[MUL]](s64)279 ; CHECK-NEXT: RET_ReallyLR implicit $x0280 %0:_(s64) = COPY $x0281 %cst:_(s64) = G_CONSTANT i64 9282 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst283 %1:_(s64) = G_MUL %c, %c284 %2:_(s64) = G_FREEZE %1285 $x0 = COPY %2(s64)286 RET_ReallyLR implicit $x0287...288---289name: freeze_nsw_mul_fold_barrier290body: |291 bb.1:292 liveins: $w0293 294 ; CHECK-LABEL: name: freeze_nsw_mul_fold_barrier295 ; CHECK: liveins: $w0296 ; CHECK-NEXT: {{ $}}297 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9298 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst299 ; CHECK-NEXT: [[MUL:%[0-9]+]]:_(s64) = G_MUL %c, %c300 ; CHECK-NEXT: $x0 = COPY [[MUL]](s64)301 ; CHECK-NEXT: RET_ReallyLR implicit $x0302 %0:_(s64) = COPY $x0303 %cst:_(s64) = G_CONSTANT i64 9304 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst305 %1:_(s64) = nsw G_MUL %c, %c306 %2:_(s64) = G_FREEZE %1307 $x0 = COPY %2(s64)308 RET_ReallyLR implicit $x0309...310---311name: freeze_trunc_fold_barrier312body: |313 bb.1:314 liveins: $w0315 316 ; CHECK-LABEL: name: freeze_trunc_fold_barrier317 ; CHECK: liveins: $w0318 ; CHECK-NEXT: {{ $}}319 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9320 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst321 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %c(s64)322 ; CHECK-NEXT: $w0 = COPY [[TRUNC]](s32)323 ; CHECK-NEXT: RET_ReallyLR implicit $q0324 %0:_(s64) = COPY $x0325 %cst:_(s64) = G_CONSTANT i64 9326 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst327 %1:_(s32) = G_TRUNC %c328 %2:_(s32) = G_FREEZE %1329 $w0 = COPY %2(s32)330 RET_ReallyLR implicit $q0331...332---333name: freeze_nuw_trunc_fold_barrier334body: |335 bb.1:336 liveins: $w0337 338 ; CHECK-LABEL: name: freeze_nuw_trunc_fold_barrier339 ; CHECK: liveins: $w0340 ; CHECK-NEXT: {{ $}}341 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9342 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst343 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC %c(s64)344 ; CHECK-NEXT: $w0 = COPY [[TRUNC]](s32)345 ; CHECK-NEXT: RET_ReallyLR implicit $q0346 %0:_(s64) = COPY $x0347 %cst:_(s64) = G_CONSTANT i64 9348 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst349 %1:_(s32) = nuw G_TRUNC %c350 %2:_(s32) = G_FREEZE %1351 $w0 = COPY %2(s32)352 RET_ReallyLR implicit $q0353...354---355name: freeze_add_fold_barrier356body: |357 bb.1:358 liveins: $w0359 360 ; CHECK-LABEL: name: freeze_add_fold_barrier361 ; CHECK: liveins: $w0362 ; CHECK-NEXT: {{ $}}363 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9364 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst365 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %c, %c366 ; CHECK-NEXT: $x0 = COPY [[ADD]](s64)367 ; CHECK-NEXT: RET_ReallyLR implicit $x0368 %0:_(s64) = COPY $x0369 %cst:_(s64) = G_CONSTANT i64 9370 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst371 %1:_(s64) = G_ADD %c, %c372 %2:_(s64) = G_FREEZE %1373 $x0 = COPY %2(s64)374 RET_ReallyLR implicit $x0375...376---377name: freeze_nuw_add_fold_barrier378body: |379 bb.1:380 liveins: $w0381 382 ; CHECK-LABEL: name: freeze_nuw_add_fold_barrier383 ; CHECK: liveins: $w0384 ; CHECK-NEXT: {{ $}}385 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9386 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst387 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %c, %c388 ; CHECK-NEXT: $x0 = COPY [[ADD]](s64)389 ; CHECK-NEXT: RET_ReallyLR implicit $x0390 %0:_(s64) = COPY $x0391 %cst:_(s64) = G_CONSTANT i64 9392 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst393 %1:_(s64) = nuw G_ADD %c, %c394 %2:_(s64) = G_FREEZE %1395 $x0 = COPY %2(s64)396 RET_ReallyLR implicit $x0397...398---399name: freeze_xor_fold_barrier400body: |401 bb.1:402 liveins: $w0403 404 ; CHECK-LABEL: name: freeze_xor_fold_barrier405 ; CHECK: liveins: $w0406 ; CHECK-NEXT: {{ $}}407 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9408 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst409 ; CHECK-NEXT: [[XOR:%[0-9]+]]:_(s64) = G_XOR %c, %c410 ; CHECK-NEXT: $x0 = COPY [[XOR]](s64)411 ; CHECK-NEXT: RET_ReallyLR implicit $x0412 %0:_(s64) = COPY $x0413 %cst:_(s64) = G_CONSTANT i64 9414 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst415 %1:_(s64) = G_XOR %c, %c416 %2:_(s64) = G_FREEZE %1417 $x0 = COPY %2(s64)418 RET_ReallyLR implicit $x0419...420---421name: freeze_fptosi_fold_barrier422body: |423 bb.1:424 liveins: $w0425 426 ; CHECK-LABEL: name: freeze_fptosi_fold_barrier427 ; CHECK: liveins: $w0428 ; CHECK-NEXT: {{ $}}429 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9430 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst431 ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI %c(s64)432 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[FPTOSI]]433 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)434 ; CHECK-NEXT: RET_ReallyLR implicit $x0435 %0:_(s64) = COPY $x0436 %cst:_(s64) = G_CONSTANT i64 9437 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst438 %1:_(s64) = G_FPTOSI %c439 %2:_(s64) = G_FREEZE %1440 $x0 = COPY %2(s64)441 RET_ReallyLR implicit $x0442...443---444name: freeze_fptoui_fold_barrier445body: |446 bb.1:447 liveins: $w0448 449 ; CHECK-LABEL: name: freeze_fptoui_fold_barrier450 ; CHECK: liveins: $w0451 ; CHECK-NEXT: {{ $}}452 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9453 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst454 ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI %c(s64)455 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[FPTOUI]]456 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)457 ; CHECK-NEXT: RET_ReallyLR implicit $x0458 %0:_(s64) = COPY $x0459 %cst:_(s64) = G_CONSTANT i64 9460 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst461 %1:_(s64) = G_FPTOUI %c462 %2:_(s64) = G_FREEZE %1463 $x0 = COPY %2(s64)464 RET_ReallyLR implicit $x0465...466---467name: freeze_shl_fold_barrier468body: |469 bb.1:470 liveins: $w0471 472 ; CHECK-LABEL: name: freeze_shl_fold_barrier473 ; CHECK: liveins: $w0474 ; CHECK-NEXT: {{ $}}475 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9476 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst477 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL %c, %c(s64)478 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[SHL]]479 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)480 ; CHECK-NEXT: RET_ReallyLR implicit $x0481 %0:_(s64) = COPY $x0482 %cst:_(s64) = G_CONSTANT i64 9483 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst484 %1:_(s64) = G_SHL %c, %c485 %2:_(s64) = G_FREEZE %1486 $x0 = COPY %2(s64)487 RET_ReallyLR implicit $x0488...489---490name: freeze_ashr_fold_barrier491body: |492 bb.1:493 liveins: $w0494 495 ; CHECK-LABEL: name: freeze_ashr_fold_barrier496 ; CHECK: liveins: $w0497 ; CHECK-NEXT: {{ $}}498 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9499 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst500 ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR %c, %c(s64)501 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[ASHR]]502 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)503 ; CHECK-NEXT: RET_ReallyLR implicit $x0504 %0:_(s64) = COPY $x0505 %cst:_(s64) = G_CONSTANT i64 9506 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst507 %1:_(s64) = G_ASHR %c, %c508 %2:_(s64) = G_FREEZE %1509 $x0 = COPY %2(s64)510 RET_ReallyLR implicit $x0511...512---513name: freeze_lshr_fold_barrier514body: |515 bb.1:516 liveins: $w0517 518 ; CHECK-LABEL: name: freeze_lshr_fold_barrier519 ; CHECK: liveins: $w0520 ; CHECK-NEXT: {{ $}}521 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9522 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst523 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR %c, %c(s64)524 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[LSHR]]525 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)526 ; CHECK-NEXT: RET_ReallyLR implicit $x0527 %0:_(s64) = COPY $x0528 %cst:_(s64) = G_CONSTANT i64 9529 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst530 %1:_(s64) = G_LSHR %c, %c531 %2:_(s64) = G_FREEZE %1532 $x0 = COPY %2(s64)533 RET_ReallyLR implicit $x0534...535---536name: freeze_ctlz_fold_barrier537body: |538 bb.1:539 liveins: $w0540 541 ; CHECK-LABEL: name: freeze_ctlz_fold_barrier542 ; CHECK: liveins: $w0543 ; CHECK-NEXT: {{ $}}544 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9545 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst546 ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ %c(s64)547 ; CHECK-NEXT: $x0 = COPY [[CTLZ]](s64)548 ; CHECK-NEXT: RET_ReallyLR implicit $x0549 %0:_(s64) = COPY $x0550 %cst:_(s64) = G_CONSTANT i64 9551 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst552 %1:_(s64) = G_CTLZ %c553 %2:_(s64) = G_FREEZE %1554 $x0 = COPY %2(s64)555 RET_ReallyLR implicit $x0556...557---558name: freeze_cttz_fold_barrier559body: |560 bb.1:561 liveins: $w0562 563 ; CHECK-LABEL: name: freeze_cttz_fold_barrier564 ; CHECK: liveins: $w0565 ; CHECK-NEXT: {{ $}}566 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9567 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst568 ; CHECK-NEXT: [[CTTZ:%[0-9]+]]:_(s64) = G_CTTZ %c(s64)569 ; CHECK-NEXT: $x0 = COPY [[CTTZ]](s64)570 ; CHECK-NEXT: RET_ReallyLR implicit $x0571 %0:_(s64) = COPY $x0572 %cst:_(s64) = G_CONSTANT i64 9573 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst574 %1:_(s64) = G_CTTZ %c575 %2:_(s64) = G_FREEZE %1576 $x0 = COPY %2(s64)577 RET_ReallyLR implicit $x0578...579---580name: freeze_abs_fold_barrier581body: |582 bb.1:583 liveins: $w0584 585 ; CHECK-LABEL: name: freeze_abs_fold_barrier586 ; CHECK: liveins: $w0587 ; CHECK-NEXT: {{ $}}588 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9589 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst590 ; CHECK-NEXT: [[ABS:%[0-9]+]]:_(s64) = G_ABS %c591 ; CHECK-NEXT: $x0 = COPY [[ABS]](s64)592 ; CHECK-NEXT: RET_ReallyLR implicit $x0593 %0:_(s64) = COPY $x0594 %cst:_(s64) = G_CONSTANT i64 9595 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst596 %1:_(s64) = G_ABS %c597 %2:_(s64) = G_FREEZE %1598 $x0 = COPY %2(s64)599 RET_ReallyLR implicit $x0600...601---602name: freeze_bswap_fold_barrier603body: |604 bb.1:605 liveins: $w0606 607 ; CHECK-LABEL: name: freeze_bswap_fold_barrier608 ; CHECK: liveins: $w0609 ; CHECK-NEXT: {{ $}}610 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9611 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst612 ; CHECK-NEXT: [[BSWAP:%[0-9]+]]:_(s64) = G_BSWAP %c613 ; CHECK-NEXT: $x0 = COPY [[BSWAP]](s64)614 ; CHECK-NEXT: RET_ReallyLR implicit $x0615 %0:_(s64) = COPY $x0616 %cst:_(s64) = G_CONSTANT i64 9617 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst618 %1:_(s64) = G_BSWAP %c619 %2:_(s64) = G_FREEZE %1620 $x0 = COPY %2(s64)621 RET_ReallyLR implicit $x0622...623---624name: freeze_bitreverse_fold_barrier625body: |626 bb.1:627 liveins: $w0628 629 ; CHECK-LABEL: name: freeze_bitreverse_fold_barrier630 ; CHECK: liveins: $w0631 ; CHECK-NEXT: {{ $}}632 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9633 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst634 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s64) = G_BITREVERSE %c635 ; CHECK-NEXT: $x0 = COPY [[BITREVERSE]](s64)636 ; CHECK-NEXT: RET_ReallyLR implicit $x0637 %0:_(s64) = COPY $x0638 %cst:_(s64) = G_CONSTANT i64 9639 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst640 %1:_(s64) = G_BITREVERSE %c641 %2:_(s64) = G_FREEZE %1642 $x0 = COPY %2(s64)643 RET_ReallyLR implicit $x0644...645---646name: freeze_icmp_fold_barrier647body: |648 bb.1:649 liveins: $w0650 651 ; CHECK-LABEL: name: freeze_icmp_fold_barrier652 ; CHECK: liveins: $w0653 ; CHECK-NEXT: {{ $}}654 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9655 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst656 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst657 ; CHECK-NEXT: %cmp:_(s1) = G_ICMP intpred(eq), %c(s64), %d658 ; CHECK-NEXT: %ext:_(s64) = G_ZEXT %cmp(s1)659 ; CHECK-NEXT: $x0 = COPY %ext(s64)660 ; CHECK-NEXT: RET_ReallyLR implicit $x0661 %0:_(s64) = COPY $x0662 %cst:_(s64) = G_CONSTANT i64 9663 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst664 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst665 %cmp:_(s1) = G_ICMP intpred(eq), %c(s64), %d666 %2:_(s1) = G_FREEZE %cmp667 %ext:_(s64) = G_ZEXT %2(s1)668 $x0 = COPY %ext(s64)669 RET_ReallyLR implicit $x0670...671---672name: freeze_fcmp_fold_barrier673body: |674 bb.1:675 liveins: $w0676 677 ; CHECK-LABEL: name: freeze_fcmp_fold_barrier678 ; CHECK: liveins: $w0679 ; CHECK-NEXT: {{ $}}680 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9681 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst682 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst683 ; CHECK-NEXT: %cmp:_(s1) = G_FCMP floatpred(oeq), %c(s64), %d684 ; CHECK-NEXT: %ext:_(s64) = G_ZEXT %cmp(s1)685 ; CHECK-NEXT: $x0 = COPY %ext(s64)686 ; CHECK-NEXT: RET_ReallyLR implicit $x0687 %0:_(s64) = COPY $x0688 %cst:_(s64) = G_CONSTANT i64 9689 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst690 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst691 %cmp:_(s1) = G_FCMP floatpred(oeq), %c(s64), %d692 %2:_(s1) = G_FREEZE %cmp693 %ext:_(s64) = G_ZEXT %2(s1)694 $x0 = COPY %ext(s64)695 RET_ReallyLR implicit $x0696...697---698name: freeze_fshl_fold_barrier699body: |700 bb.1:701 liveins: $w0702 703 ; CHECK-LABEL: name: freeze_fshl_fold_barrier704 ; CHECK: liveins: $w0705 ; CHECK-NEXT: {{ $}}706 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9707 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst708 ; CHECK-NEXT: [[ROTL:%[0-9]+]]:_(s64) = G_ROTL %c, %c(s64)709 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[ROTL]]710 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)711 ; CHECK-NEXT: RET_ReallyLR implicit $x0712 %0:_(s64) = COPY $x0713 %cst:_(s64) = G_CONSTANT i64 9714 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst715 %1:_(s64) = G_FSHL %c, %c, %c716 %2:_(s64) = G_FREEZE %1717 $x0 = COPY %2(s64)718 RET_ReallyLR implicit $x0719...720---721name: freeze_fshr_fold_barrier722body: |723 bb.1:724 liveins: $w0725 726 ; CHECK-LABEL: name: freeze_fshr_fold_barrier727 ; CHECK: liveins: $w0728 ; CHECK-NEXT: {{ $}}729 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9730 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst731 ; CHECK-NEXT: [[ROTR:%[0-9]+]]:_(s64) = G_ROTR %c, %c(s64)732 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[ROTR]]733 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)734 ; CHECK-NEXT: RET_ReallyLR implicit $x0735 %0:_(s64) = COPY $x0736 %cst:_(s64) = G_CONSTANT i64 9737 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst738 %1:_(s64) = G_FSHR %c, %c, %c739 %2:_(s64) = G_FREEZE %1740 $x0 = COPY %2(s64)741 RET_ReallyLR implicit $x0742...743---744name: freeze_smax_fold_barrier745body: |746 bb.1:747 liveins: $w0748 749 ; CHECK-LABEL: name: freeze_smax_fold_barrier750 ; CHECK: liveins: $w0751 ; CHECK-NEXT: {{ $}}752 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9753 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst754 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst755 ; CHECK-NEXT: [[SMAX:%[0-9]+]]:_(s64) = G_SMAX %c, %d756 ; CHECK-NEXT: $x0 = COPY [[SMAX]](s64)757 ; CHECK-NEXT: RET_ReallyLR implicit $x0758 %0:_(s64) = COPY $x0759 %cst:_(s64) = G_CONSTANT i64 9760 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst761 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst762 %1:_(s64) = G_SMAX %c, %d763 %2:_(s64) = G_FREEZE %1764 $x0 = COPY %2(s64)765 RET_ReallyLR implicit $x0766...767---768name: freeze_smin_fold_barrier769body: |770 bb.1:771 liveins: $w0772 773 ; CHECK-LABEL: name: freeze_smin_fold_barrier774 ; CHECK: liveins: $w0775 ; CHECK-NEXT: {{ $}}776 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9777 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst778 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst779 ; CHECK-NEXT: [[SMIN:%[0-9]+]]:_(s64) = G_SMIN %c, %d780 ; CHECK-NEXT: $x0 = COPY [[SMIN]](s64)781 ; CHECK-NEXT: RET_ReallyLR implicit $x0782 %0:_(s64) = COPY $x0783 %cst:_(s64) = G_CONSTANT i64 9784 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst785 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst786 %1:_(s64) = G_SMIN %c, %d787 %2:_(s64) = G_FREEZE %1788 $x0 = COPY %2(s64)789 RET_ReallyLR implicit $x0790...791---792name: freeze_umax_fold_barrier793body: |794 bb.1:795 liveins: $w0796 797 ; CHECK-LABEL: name: freeze_umax_fold_barrier798 ; CHECK: liveins: $w0799 ; CHECK-NEXT: {{ $}}800 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9801 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst802 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst803 ; CHECK-NEXT: [[UMAX:%[0-9]+]]:_(s64) = G_UMAX %c, %d804 ; CHECK-NEXT: $x0 = COPY [[UMAX]](s64)805 ; CHECK-NEXT: RET_ReallyLR implicit $x0806 %0:_(s64) = COPY $x0807 %cst:_(s64) = G_CONSTANT i64 9808 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst809 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst810 %1:_(s64) = G_UMAX %c, %d811 %2:_(s64) = G_FREEZE %1812 $x0 = COPY %2(s64)813 RET_ReallyLR implicit $x0814...815---816name: freeze_umin_fold_barrier817body: |818 bb.1:819 liveins: $w0820 821 ; CHECK-LABEL: name: freeze_umin_fold_barrier822 ; CHECK: liveins: $w0823 ; CHECK-NEXT: {{ $}}824 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9825 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst826 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst827 ; CHECK-NEXT: [[UMIN:%[0-9]+]]:_(s64) = G_UMIN %c, %d828 ; CHECK-NEXT: $x0 = COPY [[UMIN]](s64)829 ; CHECK-NEXT: RET_ReallyLR implicit $x0830 %0:_(s64) = COPY $x0831 %cst:_(s64) = G_CONSTANT i64 9832 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst833 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst834 %1:_(s64) = G_UMIN %c, %d835 %2:_(s64) = G_FREEZE %1836 $x0 = COPY %2(s64)837 RET_ReallyLR implicit $x0838...839---840name: freeze_ptrmask_fold_barrier841body: |842 bb.1:843 liveins: $w0844 845 ; CHECK-LABEL: name: freeze_ptrmask_fold_barrier846 ; CHECK: liveins: $w0847 ; CHECK-NEXT: {{ $}}848 ; CHECK-NEXT: %p:_(p0) = COPY $x0849 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9850 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p0) = G_FREEZE %p851 ; CHECK-NEXT: [[PTRMASK:%[0-9]+]]:_(p0) = G_PTRMASK [[FREEZE]], %cst(s64)852 ; CHECK-NEXT: $x0 = COPY [[PTRMASK]](p0)853 ; CHECK-NEXT: RET_ReallyLR implicit $x0854 %0:_(s64) = COPY $x0855 %p:_(p0) = COPY $x0856 %cst:_(s64) = G_CONSTANT i64 9857 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst858 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst859 %1:_(p0) = G_PTRMASK %p, %cst860 %2:_(p0) = G_FREEZE %1861 $x0 = COPY %2(p0)862 RET_ReallyLR implicit $x0863...864---865name: freeze_saddo_fold_barrier866body: |867 bb.1:868 liveins: $w0869 870 ; CHECK-LABEL: name: freeze_saddo_fold_barrier871 ; CHECK: liveins: $w0872 ; CHECK-NEXT: {{ $}}873 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9874 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst875 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst876 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %c, %d877 ; CHECK-NEXT: $x0 = COPY [[ADD]](s64)878 ; CHECK-NEXT: RET_ReallyLR implicit $x0879 %0:_(s64) = COPY $x0880 %cst:_(s64) = G_CONSTANT i64 9881 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst882 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst883 %1:_(s64), %o:_(s1) = G_SADDO %c, %d884 %2:_(s64) = G_FREEZE %1885 $x0 = COPY %2(s64)886 RET_ReallyLR implicit $x0887...888---889name: freeze_ssubo_fold_barrier890body: |891 bb.1:892 liveins: $w0893 894 ; CHECK-LABEL: name: freeze_ssubo_fold_barrier895 ; CHECK: liveins: $w0896 ; CHECK-NEXT: {{ $}}897 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9898 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst899 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst900 ; CHECK-NEXT: %4:_(s64), %o:_(s1) = G_SSUBO %c, %d901 ; CHECK-NEXT: $x0 = COPY %4(s64)902 ; CHECK-NEXT: RET_ReallyLR implicit $x0903 %0:_(s64) = COPY $x0904 %cst:_(s64) = G_CONSTANT i64 9905 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst906 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst907 %1:_(s64), %o:_(s1) = G_SSUBO %c, %d908 %2:_(s64) = G_FREEZE %1909 $x0 = COPY %2(s64)910 RET_ReallyLR implicit $x0911...912---913name: freeze_uaddo_fold_barrier914body: |915 bb.1:916 liveins: $w0917 918 ; CHECK-LABEL: name: freeze_uaddo_fold_barrier919 ; CHECK: liveins: $w0920 ; CHECK-NEXT: {{ $}}921 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9922 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst923 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst924 ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD %c, %d925 ; CHECK-NEXT: $x0 = COPY [[ADD]](s64)926 ; CHECK-NEXT: RET_ReallyLR implicit $x0927 %0:_(s64) = COPY $x0928 %cst:_(s64) = G_CONSTANT i64 9929 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst930 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst931 %1:_(s64), %o:_(s1) = G_UADDO %c, %d932 %2:_(s64) = G_FREEZE %1933 $x0 = COPY %2(s64)934 RET_ReallyLR implicit $x0935...936---937name: freeze_usubo_fold_barrier938body: |939 bb.1:940 liveins: $w0941 942 ; CHECK-LABEL: name: freeze_usubo_fold_barrier943 ; CHECK: liveins: $w0944 ; CHECK-NEXT: {{ $}}945 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9946 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst947 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst948 ; CHECK-NEXT: %4:_(s64), %o:_(s1) = G_USUBO %c, %d949 ; CHECK-NEXT: $x0 = COPY %4(s64)950 ; CHECK-NEXT: RET_ReallyLR implicit $x0951 %0:_(s64) = COPY $x0952 %cst:_(s64) = G_CONSTANT i64 9953 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst954 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst955 %1:_(s64), %o:_(s1) = G_USUBO %c, %d956 %2:_(s64) = G_FREEZE %1957 $x0 = COPY %2(s64)958 RET_ReallyLR implicit $x0959...960---961name: freeze_smulo_fold_barrier962body: |963 bb.1:964 liveins: $w0965 966 ; CHECK-LABEL: name: freeze_smulo_fold_barrier967 ; CHECK: liveins: $w0968 ; CHECK-NEXT: {{ $}}969 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9970 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst971 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst972 ; CHECK-NEXT: %4:_(s64), %o:_(s1) = G_SMULO %c, %d973 ; CHECK-NEXT: $x0 = COPY %4(s64)974 ; CHECK-NEXT: RET_ReallyLR implicit $x0975 %0:_(s64) = COPY $x0976 %cst:_(s64) = G_CONSTANT i64 9977 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst978 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst979 %1:_(s64), %o:_(s1) = G_SMULO %c, %d980 %2:_(s64) = G_FREEZE %1981 $x0 = COPY %2(s64)982 RET_ReallyLR implicit $x0983...984---985name: freeze_umulo_fold_barrier986body: |987 bb.1:988 liveins: $w0989 990 ; CHECK-LABEL: name: freeze_umulo_fold_barrier991 ; CHECK: liveins: $w0992 ; CHECK-NEXT: {{ $}}993 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 9994 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst995 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst996 ; CHECK-NEXT: %4:_(s64), %o:_(s1) = G_UMULO %c, %d997 ; CHECK-NEXT: $x0 = COPY %4(s64)998 ; CHECK-NEXT: RET_ReallyLR implicit $x0999 %0:_(s64) = COPY $x01000 %cst:_(s64) = G_CONSTANT i64 91001 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1002 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1003 %1:_(s64), %o:_(s1) = G_UMULO %c, %d1004 %2:_(s64) = G_FREEZE %11005 $x0 = COPY %2(s64)1006 RET_ReallyLR implicit $x01007...1008---1009name: freeze_saddsat_fold_barrier1010body: |1011 bb.1:1012 liveins: $w01013 1014 ; CHECK-LABEL: name: freeze_saddsat_fold_barrier1015 ; CHECK: liveins: $w01016 ; CHECK-NEXT: {{ $}}1017 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91018 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1019 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1020 ; CHECK-NEXT: [[SADDSAT:%[0-9]+]]:_(s64) = G_SADDSAT %c, %d1021 ; CHECK-NEXT: $x0 = COPY [[SADDSAT]](s64)1022 ; CHECK-NEXT: RET_ReallyLR implicit $x01023 %0:_(s64) = COPY $x01024 %cst:_(s64) = G_CONSTANT i64 91025 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1026 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1027 %1:_(s64) = G_SADDSAT %c, %d1028 %2:_(s64) = G_FREEZE %11029 $x0 = COPY %2(s64)1030 RET_ReallyLR implicit $x01031...1032---1033name: freeze_uaddsat_fold_barrier1034body: |1035 bb.1:1036 liveins: $w01037 1038 ; CHECK-LABEL: name: freeze_uaddsat_fold_barrier1039 ; CHECK: liveins: $w01040 ; CHECK-NEXT: {{ $}}1041 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91042 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1043 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1044 ; CHECK-NEXT: [[UADDSAT:%[0-9]+]]:_(s64) = G_UADDSAT %c, %d1045 ; CHECK-NEXT: $x0 = COPY [[UADDSAT]](s64)1046 ; CHECK-NEXT: RET_ReallyLR implicit $x01047 %0:_(s64) = COPY $x01048 %cst:_(s64) = G_CONSTANT i64 91049 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1050 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1051 %1:_(s64) = G_UADDSAT %c, %d1052 %2:_(s64) = G_FREEZE %11053 $x0 = COPY %2(s64)1054 RET_ReallyLR implicit $x01055...1056---1057name: freeze_ssubsat_fold_barrier1058body: |1059 bb.1:1060 liveins: $w01061 1062 ; CHECK-LABEL: name: freeze_ssubsat_fold_barrier1063 ; CHECK: liveins: $w01064 ; CHECK-NEXT: {{ $}}1065 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91066 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1067 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1068 ; CHECK-NEXT: [[SSUBSAT:%[0-9]+]]:_(s64) = G_SSUBSAT %c, %d1069 ; CHECK-NEXT: $x0 = COPY [[SSUBSAT]](s64)1070 ; CHECK-NEXT: RET_ReallyLR implicit $x01071 %0:_(s64) = COPY $x01072 %cst:_(s64) = G_CONSTANT i64 91073 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1074 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1075 %1:_(s64) = G_SSUBSAT %c, %d1076 %2:_(s64) = G_FREEZE %11077 $x0 = COPY %2(s64)1078 RET_ReallyLR implicit $x01079...1080---1081name: freeze_usubsat_fold_barrier1082body: |1083 bb.1:1084 liveins: $w01085 1086 ; CHECK-LABEL: name: freeze_usubsat_fold_barrier1087 ; CHECK: liveins: $w01088 ; CHECK-NEXT: {{ $}}1089 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91090 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1091 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1092 ; CHECK-NEXT: [[USUBSAT:%[0-9]+]]:_(s64) = G_USUBSAT %c, %d1093 ; CHECK-NEXT: $x0 = COPY [[USUBSAT]](s64)1094 ; CHECK-NEXT: RET_ReallyLR implicit $x01095 %0:_(s64) = COPY $x01096 %cst:_(s64) = G_CONSTANT i64 91097 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1098 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1099 %1:_(s64) = G_USUBSAT %c, %d1100 %2:_(s64) = G_FREEZE %11101 $x0 = COPY %2(s64)1102 RET_ReallyLR implicit $x01103...1104---1105name: freeze_sshlsat_fold_barrier1106body: |1107 bb.1:1108 liveins: $w01109 1110 ; CHECK-LABEL: name: freeze_sshlsat_fold_barrier1111 ; CHECK: liveins: $w01112 ; CHECK-NEXT: {{ $}}1113 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91114 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1115 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1116 ; CHECK-NEXT: [[SSHLSAT:%[0-9]+]]:_(s64) = G_SSHLSAT %c, %d(s64)1117 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[SSHLSAT]]1118 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)1119 ; CHECK-NEXT: RET_ReallyLR implicit $x01120 %0:_(s64) = COPY $x01121 %cst:_(s64) = G_CONSTANT i64 91122 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1123 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1124 %1:_(s64) = G_SSHLSAT %c, %d1125 %2:_(s64) = G_FREEZE %11126 $x0 = COPY %2(s64)1127 RET_ReallyLR implicit $x01128...1129---1130name: freeze_ushlsat_fold_barrier1131body: |1132 bb.1:1133 liveins: $w01134 1135 ; CHECK-LABEL: name: freeze_ushlsat_fold_barrier1136 ; CHECK: liveins: $w01137 ; CHECK-NEXT: {{ $}}1138 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91139 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1140 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1141 ; CHECK-NEXT: [[USHLSAT:%[0-9]+]]:_(s64) = G_USHLSAT %c, %d(s64)1142 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[USHLSAT]]1143 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)1144 ; CHECK-NEXT: RET_ReallyLR implicit $x01145 %0:_(s64) = COPY $x01146 %cst:_(s64) = G_CONSTANT i64 91147 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1148 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1149 %1:_(s64) = G_USHLSAT %c, %d1150 %2:_(s64) = G_FREEZE %11151 $x0 = COPY %2(s64)1152 RET_ReallyLR implicit $x01153...1154---1155name: freeze_fneg_fold_barrier1156body: |1157 bb.1:1158 liveins: $w01159 1160 ; CHECK-LABEL: name: freeze_fneg_fold_barrier1161 ; CHECK: liveins: $w01162 ; CHECK-NEXT: {{ $}}1163 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001164 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1165 ; CHECK-NEXT: [[FNEG:%[0-9]+]]:_(s64) = G_FNEG %c1166 ; CHECK-NEXT: $x0 = COPY [[FNEG]](s64)1167 ; CHECK-NEXT: RET_ReallyLR implicit $x01168 %0:_(s64) = COPY $x01169 %cst:_(s64) = G_FCONSTANT double 0.01170 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1171 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1172 %1:_(s64) = G_FNEG %c1173 %2:_(s64) = G_FREEZE %11174 $x0 = COPY %2(s64)1175 RET_ReallyLR implicit $x01176...1177---1178name: freeze_frem_fold_barrier1179body: |1180 bb.1:1181 liveins: $w01182 1183 ; CHECK-LABEL: name: freeze_frem_fold_barrier1184 ; CHECK: liveins: $w01185 ; CHECK-NEXT: {{ $}}1186 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001187 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1188 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1189 ; CHECK-NEXT: [[FREM:%[0-9]+]]:_(s64) = G_FREM %c, %d1190 ; CHECK-NEXT: $x0 = COPY [[FREM]](s64)1191 ; CHECK-NEXT: RET_ReallyLR implicit $x01192 %0:_(s64) = COPY $x01193 %cst:_(s64) = G_FCONSTANT double 0.01194 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1195 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1196 %1:_(s64) = G_FREM %c, %d1197 %2:_(s64) = G_FREEZE %11198 $x0 = COPY %2(s64)1199 RET_ReallyLR implicit $x01200...1201---1202name: freeze_fdiv_fold_barrier1203body: |1204 bb.1:1205 liveins: $w01206 1207 ; CHECK-LABEL: name: freeze_fdiv_fold_barrier1208 ; CHECK: liveins: $w01209 ; CHECK-NEXT: {{ $}}1210 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001211 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1212 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1213 ; CHECK-NEXT: [[FDIV:%[0-9]+]]:_(s64) = G_FDIV %c, %d1214 ; CHECK-NEXT: $x0 = COPY [[FDIV]](s64)1215 ; CHECK-NEXT: RET_ReallyLR implicit $x01216 %0:_(s64) = COPY $x01217 %cst:_(s64) = G_FCONSTANT double 0.01218 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1219 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1220 %1:_(s64) = G_FDIV %c, %d1221 %2:_(s64) = G_FREEZE %11222 $x0 = COPY %2(s64)1223 RET_ReallyLR implicit $x01224...1225---1226name: freeze_fmul_fold_barrier1227body: |1228 bb.1:1229 liveins: $w01230 1231 ; CHECK-LABEL: name: freeze_fmul_fold_barrier1232 ; CHECK: liveins: $w01233 ; CHECK-NEXT: {{ $}}1234 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001235 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1236 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1237 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL %c, %d1238 ; CHECK-NEXT: $x0 = COPY [[FMUL]](s64)1239 ; CHECK-NEXT: RET_ReallyLR implicit $x01240 %0:_(s64) = COPY $x01241 %cst:_(s64) = G_FCONSTANT double 0.01242 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1243 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1244 %1:_(s64) = G_FMUL %c, %d1245 %2:_(s64) = G_FREEZE %11246 $x0 = COPY %2(s64)1247 RET_ReallyLR implicit $x01248...1249---1250name: freeze_fsub_fold_barrier1251body: |1252 bb.1:1253 liveins: $w01254 1255 ; CHECK-LABEL: name: freeze_fsub_fold_barrier1256 ; CHECK: liveins: $w01257 ; CHECK-NEXT: {{ $}}1258 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001259 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1260 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1261 ; CHECK-NEXT: [[FSUB:%[0-9]+]]:_(s64) = G_FSUB %c, %d1262 ; CHECK-NEXT: $x0 = COPY [[FSUB]](s64)1263 ; CHECK-NEXT: RET_ReallyLR implicit $x01264 %0:_(s64) = COPY $x01265 %cst:_(s64) = G_FCONSTANT double 0.01266 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1267 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1268 %1:_(s64) = G_FSUB %c, %d1269 %2:_(s64) = G_FREEZE %11270 $x0 = COPY %2(s64)1271 RET_ReallyLR implicit $x01272...1273---1274name: freeze_fadd_fold_barrier1275body: |1276 bb.1:1277 liveins: $w01278 1279 ; CHECK-LABEL: name: freeze_fadd_fold_barrier1280 ; CHECK: liveins: $w01281 ; CHECK-NEXT: {{ $}}1282 ; CHECK-NEXT: %cst:_(s64) = G_FCONSTANT double 0.000000e+001283 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1284 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1285 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD %c, %d1286 ; CHECK-NEXT: $x0 = COPY [[FADD]](s64)1287 ; CHECK-NEXT: RET_ReallyLR implicit $x01288 %0:_(s64) = COPY $x01289 %cst:_(s64) = G_FCONSTANT double 0.01290 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1291 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1292 %1:_(s64) = G_FADD %c, %d1293 %2:_(s64) = G_FREEZE %11294 $x0 = COPY %2(s64)1295 RET_ReallyLR implicit $x01296...1297---1298name: freeze_urem_fold_barrier1299body: |1300 bb.1:1301 liveins: $w01302 1303 ; CHECK-LABEL: name: freeze_urem_fold_barrier1304 ; CHECK: liveins: $w01305 ; CHECK-NEXT: {{ $}}1306 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91307 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1308 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1309 ; CHECK-NEXT: [[UREM:%[0-9]+]]:_(s64) = G_UREM %c, %d1310 ; CHECK-NEXT: $x0 = COPY [[UREM]](s64)1311 ; CHECK-NEXT: RET_ReallyLR implicit $x01312 %0:_(s64) = COPY $x01313 %cst:_(s64) = G_CONSTANT i64 91314 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1315 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1316 %1:_(s64) = G_UREM %c, %d1317 %2:_(s64) = G_FREEZE %11318 $x0 = COPY %2(s64)1319 RET_ReallyLR implicit $x01320...1321---1322name: freeze_srem_fold_barrier1323body: |1324 bb.1:1325 liveins: $w01326 1327 ; CHECK-LABEL: name: freeze_srem_fold_barrier1328 ; CHECK: liveins: $w01329 ; CHECK-NEXT: {{ $}}1330 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91331 ; CHECK-NEXT: %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1332 ; CHECK-NEXT: %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1333 ; CHECK-NEXT: [[SREM:%[0-9]+]]:_(s64) = G_SREM %c, %d1334 ; CHECK-NEXT: $x0 = COPY [[SREM]](s64)1335 ; CHECK-NEXT: RET_ReallyLR implicit $x01336 %0:_(s64) = COPY $x01337 %cst:_(s64) = G_CONSTANT i64 91338 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1339 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1340 %1:_(s64) = G_SREM %c, %d1341 %2:_(s64) = G_FREEZE %11342 $x0 = COPY %2(s64)1343 RET_ReallyLR implicit $x01344...1345---1346name: freeze_ptradd_fold_barrier1347body: |1348 bb.1:1349 liveins: $w01350 1351 ; CHECK-LABEL: name: freeze_ptradd_fold_barrier1352 ; CHECK: liveins: $w01353 ; CHECK-NEXT: {{ $}}1354 ; CHECK-NEXT: %p:_(p0) = COPY $x01355 ; CHECK-NEXT: %cst:_(s64) = G_CONSTANT i64 91356 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p0) = G_FREEZE %p1357 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[FREEZE]], %cst(s64)1358 ; CHECK-NEXT: $x0 = COPY [[PTR_ADD]](p0)1359 ; CHECK-NEXT: RET_ReallyLR implicit $x01360 %0:_(s64) = COPY $x01361 %p:_(p0) = COPY $x01362 %cst:_(s64) = G_CONSTANT i64 91363 %c:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1364 %d:_(s64) = G_CONSTANT_FOLD_BARRIER %cst1365 %1:_(p0) = G_PTR_ADD %p, %cst1366 %2:_(p0) = G_FREEZE %11367 $x0 = COPY %2(p0)1368 RET_ReallyLR implicit $x01369...1370---1371# select (false, x, y) -> y1372name: freeze_select_fold_barrier1373body: |1374 bb.1:1375 liveins: $x0, $x11376 ; CHECK-LABEL: name: freeze_select_fold_barrier1377 ; CHECK: liveins: $x0, $x11378 ; CHECK-NEXT: {{ $}}1379 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x11380 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]1381 ; CHECK-NEXT: $x0 = COPY [[FREEZE]](s64)1382 %0:_(s64) = COPY $x01383 %1:_(s64) = COPY $x11384 %2:_(s1) = G_CONSTANT i1 false1385 %3:_(s64) = G_SELECT %2, %0, %11386 %4:_(s64) = G_FREEZE %31387 $x0 = COPY %4(s64)1388...1389---1390name: freeze_extract_and_shuffle_vector_fold_barrier1391body: |1392 bb.1:1393 liveins: $x0, $x11394 ; CHECK-LABEL: name: freeze_extract_and_shuffle_vector_fold_barrier1395 ; CHECK: liveins: $x0, $x11396 ; CHECK-NEXT: {{ $}}1397 ; CHECK-NEXT: %arg1:_(<4 x s32>) = COPY $q01398 ; CHECK-NEXT: %idx:_(s64) = G_CONSTANT i64 01399 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s32>) = G_IMPLICIT_DEF1400 ; CHECK-NEXT: %sv:_(<4 x s32>) = G_SHUFFLE_VECTOR %arg1(<4 x s32>), [[DEF]], shufflemask(3, 0, 0, 0)1401 ; CHECK-NEXT: %freeze_sv:_(<4 x s32>) = G_FREEZE %sv1402 ; CHECK-NEXT: %extract:_(s32) = G_EXTRACT_VECTOR_ELT %freeze_sv(<4 x s32>), %idx(s64)1403 ; CHECK-NEXT: $w0 = COPY %extract(s32)1404 ; CHECK-NEXT: RET_ReallyLR implicit $x01405 %arg1:_(<4 x s32>) = COPY $q01406 %arg2:_(<4 x s32>) = COPY $q11407 %idx:_(s64) = G_CONSTANT i64 01408 %sv:_(<4 x s32>) = G_SHUFFLE_VECTOR %arg1(<4 x s32>), %arg2(<4 x s32>), shufflemask(3, 0, 0, 0)1409 %freeze_sv:_(<4 x s32>) = G_FREEZE %sv1410 %extract:_(s32) = G_EXTRACT_VECTOR_ELT %freeze_sv(<4 x s32>), %idx(s64)1411 %freeze:_(s32) = G_FREEZE %extract1412 $w0 = COPY %extract(s32)1413 RET_ReallyLR implicit $x01414...1415---1416name: freeze_insert_and_shuffle_vector_fold_barrier1417body: |1418 bb.1:1419 liveins: $x0, $x11420 ; CHECK-LABEL: name: freeze_insert_and_shuffle_vector_fold_barrier1421 ; CHECK: liveins: $x0, $x11422 ; CHECK-NEXT: {{ $}}1423 ; CHECK-NEXT: %elt:_(s32) = COPY $w01424 ; CHECK-NEXT: %arg1:_(<4 x s32>) = COPY $q01425 ; CHECK-NEXT: %idx:_(s64) = G_CONSTANT i64 01426 ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s32>) = G_IMPLICIT_DEF1427 ; CHECK-NEXT: %sv:_(<4 x s32>) = G_SHUFFLE_VECTOR %arg1(<4 x s32>), [[DEF]], shufflemask(3, 0, 0, 0)1428 ; CHECK-NEXT: %freeze_sv:_(<4 x s32>) = G_FREEZE %sv1429 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE %elt1430 ; CHECK-NEXT: %extract:_(<4 x s32>) = G_INSERT_VECTOR_ELT %freeze_sv, [[FREEZE]](s32), %idx(s64)1431 ; CHECK-NEXT: $q0 = COPY %extract(<4 x s32>)1432 ; CHECK-NEXT: RET_ReallyLR implicit $x01433 %elt:_(s32) = COPY $w01434 %arg1:_(<4 x s32>) = COPY $q01435 %arg2:_(<4 x s32>) = COPY $q11436 %idx:_(s64) = G_CONSTANT i64 01437 %sv:_(<4 x s32>) = G_SHUFFLE_VECTOR %arg1(<4 x s32>), %arg2(<4 x s32>), shufflemask(3, 0, 0, 0)1438 %freeze_sv:_(<4 x s32>) = G_FREEZE %sv1439 %extract:_(<4 x s32>) = G_INSERT_VECTOR_ELT %freeze_sv(<4 x s32>), %elt(s32), %idx(s64)1440 %freeze:_(<4 x s32>) = G_FREEZE %extract1441 $q0 = COPY %freeze(<4 x s32>)1442 RET_ReallyLR implicit $x01443...1444---1445name: ubfx_does_not_generate_poison1446body: |1447 bb.1:1448 liveins: $w01449 1450 ; CHECK-LABEL: name: ubfx_does_not_generate_poison1451 ; CHECK: liveins: $w01452 ; CHECK-NEXT: {{ $}}1453 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x01454 ; CHECK-NEXT: %c1:_(s64) = G_CONSTANT i64 11455 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]1456 ; CHECK-NEXT: [[UBFX:%[0-9]+]]:_(s64) = G_UBFX [[FREEZE]], %c1(s64), %c11457 ; CHECK-NEXT: $x0 = COPY [[UBFX]](s64)1458 ; CHECK-NEXT: RET_ReallyLR implicit $x01459 %0:_(s64) = COPY $x01460 %c1:_(s64) = G_CONSTANT i64 11461 %1:_(s64) = G_UBFX %0, %c1, %c11462 %2:_(s64) = G_FREEZE %11463 $x0 = COPY %2(s64)1464 RET_ReallyLR implicit $x01465 1466...1467---1468name: sbfx_does_not_generate_poison1469body: |1470 bb.1:1471 liveins: $w01472 1473 ; CHECK-LABEL: name: sbfx_does_not_generate_poison1474 ; CHECK: liveins: $w01475 ; CHECK-NEXT: {{ $}}1476 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x01477 ; CHECK-NEXT: %c1:_(s64) = G_CONSTANT i64 11478 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]1479 ; CHECK-NEXT: [[SBFX:%[0-9]+]]:_(s64) = G_SBFX [[FREEZE]], %c1(s64), %c11480 ; CHECK-NEXT: $x0 = COPY [[SBFX]](s64)1481 ; CHECK-NEXT: RET_ReallyLR implicit $x01482 %0:_(s64) = COPY $x01483 %c1:_(s64) = G_CONSTANT i64 11484 %1:_(s64) = G_SBFX %0, %c1, %c11485 %2:_(s64) = G_FREEZE %11486 $x0 = COPY %2(s64)1487 RET_ReallyLR implicit $x01488 1489...1490