brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 1602480 Raw
107 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=aarch64-apple-ios -global-isel -stop-after=irtranslator %s -o - | FileCheck %s --check-prefix=TRANSLATED3; RUN: llc -mtriple=aarch64-apple-ios -global-isel -stop-before=instruction-select %s -o - | FileCheck %s --check-prefix=PRESELECTION4; RUN: llc -mtriple=aarch64-apple-ios -global-isel -stop-after=instruction-select %s -o - | FileCheck %s --check-prefix=POSTSELECTION5 6; Check we generate G_CONSTANT_FOLD_BARRIER of constants and don't fold them, since they're7; used by constant hoisting to prevent constant folding/propagation.8 9declare void @callee()10 11define i32 @test(i32 %a, i1 %c) {12  ; TRANSLATED-LABEL: name: test13  ; TRANSLATED: bb.1.entry:14  ; TRANSLATED-NEXT:   successors: %bb.3(0x40000000), %bb.2(0x40000000)15  ; TRANSLATED-NEXT:   liveins: $w0, $w116  ; TRANSLATED-NEXT: {{  $}}17  ; TRANSLATED-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $w018  ; TRANSLATED-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w119  ; TRANSLATED-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)20  ; TRANSLATED-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s8) = G_ASSERT_ZEXT [[TRUNC]], 121  ; TRANSLATED-NEXT:   [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[ASSERT_ZEXT]](s8)22  ; TRANSLATED-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 10000023  ; TRANSLATED-NEXT:   [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 024  ; TRANSLATED-NEXT:   [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:_(s32) = G_CONSTANT_FOLD_BARRIER [[C]]25  ; TRANSLATED-NEXT:   G_BRCOND [[TRUNC1]](s1), %bb.326  ; TRANSLATED-NEXT:   G_BR %bb.227  ; TRANSLATED-NEXT: {{  $}}28  ; TRANSLATED-NEXT: bb.2.common.ret:29  ; TRANSLATED-NEXT:   [[PHI:%[0-9]+]]:_(s32) = G_PHI %7(s32), %bb.3, [[C1]](s32), %bb.130  ; TRANSLATED-NEXT:   $w0 = COPY [[PHI]](s32)31  ; TRANSLATED-NEXT:   RET_ReallyLR implicit $w032  ; TRANSLATED-NEXT: {{  $}}33  ; TRANSLATED-NEXT: bb.3.cont:34  ; TRANSLATED-NEXT:   successors: %bb.2(0x80000000)35  ; TRANSLATED-NEXT: {{  $}}36  ; TRANSLATED-NEXT:   [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[CONSTANT_FOLD_BARRIER]]37  ; TRANSLATED-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp38  ; TRANSLATED-NEXT:   BL @callee, csr_darwin_aarch64_aapcs, implicit-def $lr, implicit $sp39  ; TRANSLATED-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp40  ; TRANSLATED-NEXT:   G_BR %bb.241  ;42  ; PRESELECTION-LABEL: name: test43  ; PRESELECTION: bb.1.entry:44  ; PRESELECTION-NEXT:   successors: %bb.3(0x40000000), %bb.2(0x40000000)45  ; PRESELECTION-NEXT:   liveins: $w0, $w146  ; PRESELECTION-NEXT: {{  $}}47  ; PRESELECTION-NEXT:   [[COPY:%[0-9]+]]:gpr(s32) = COPY $w048  ; PRESELECTION-NEXT:   [[COPY1:%[0-9]+]]:gpr(s32) = COPY $w149  ; PRESELECTION-NEXT:   [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 10000050  ; PRESELECTION-NEXT:   [[CONSTANT_FOLD_BARRIER:%[0-9]+]]:gpr(s32) = G_CONSTANT_FOLD_BARRIER [[C]]51  ; PRESELECTION-NEXT:   [[C1:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 052  ; PRESELECTION-NEXT:   [[C2:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 153  ; PRESELECTION-NEXT:   [[AND:%[0-9]+]]:gpr(s32) = G_AND [[COPY1]], [[C2]]54  ; PRESELECTION-NEXT:   G_BRCOND [[AND]](s32), %bb.355  ; PRESELECTION-NEXT:   G_BR %bb.256  ; PRESELECTION-NEXT: {{  $}}57  ; PRESELECTION-NEXT: bb.2.common.ret:58  ; PRESELECTION-NEXT:   [[PHI:%[0-9]+]]:gpr(s32) = G_PHI %7(s32), %bb.3, [[C1]](s32), %bb.159  ; PRESELECTION-NEXT:   $w0 = COPY [[PHI]](s32)60  ; PRESELECTION-NEXT:   RET_ReallyLR implicit $w061  ; PRESELECTION-NEXT: {{  $}}62  ; PRESELECTION-NEXT: bb.3.cont:63  ; PRESELECTION-NEXT:   successors: %bb.2(0x80000000)64  ; PRESELECTION-NEXT: {{  $}}65  ; PRESELECTION-NEXT:   [[ADD:%[0-9]+]]:gpr(s32) = G_ADD [[COPY]], [[CONSTANT_FOLD_BARRIER]]66  ; PRESELECTION-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp67  ; PRESELECTION-NEXT:   BL @callee, csr_darwin_aarch64_aapcs, implicit-def $lr, implicit $sp68  ; PRESELECTION-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp69  ; PRESELECTION-NEXT:   G_BR %bb.270  ;71  ; POSTSELECTION-LABEL: name: test72  ; POSTSELECTION: bb.1.entry:73  ; POSTSELECTION-NEXT:   successors: %bb.3(0x40000000), %bb.2(0x40000000)74  ; POSTSELECTION-NEXT:   liveins: $w0, $w175  ; POSTSELECTION-NEXT: {{  $}}76  ; POSTSELECTION-NEXT:   [[COPY:%[0-9]+]]:gpr32 = COPY $w077  ; POSTSELECTION-NEXT:   [[COPY1:%[0-9]+]]:gpr32 = COPY $w178  ; POSTSELECTION-NEXT:   [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 10000079  ; POSTSELECTION-NEXT:   [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr80  ; POSTSELECTION-NEXT:   TBNZW [[COPY1]], 0, %bb.381  ; POSTSELECTION-NEXT:   B %bb.282  ; POSTSELECTION-NEXT: {{  $}}83  ; POSTSELECTION-NEXT: bb.2.common.ret:84  ; POSTSELECTION-NEXT:   [[PHI:%[0-9]+]]:gpr32 = PHI %7, %bb.3, [[COPY2]], %bb.185  ; POSTSELECTION-NEXT:   $w0 = COPY [[PHI]]86  ; POSTSELECTION-NEXT:   RET_ReallyLR implicit $w087  ; POSTSELECTION-NEXT: {{  $}}88  ; POSTSELECTION-NEXT: bb.3.cont:89  ; POSTSELECTION-NEXT:   successors: %bb.2(0x80000000)90  ; POSTSELECTION-NEXT: {{  $}}91  ; POSTSELECTION-NEXT:   [[ADDWrr:%[0-9]+]]:gpr32 = ADDWrr [[COPY]], [[MOVi32imm]]92  ; POSTSELECTION-NEXT:   ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp93  ; POSTSELECTION-NEXT:   BL @callee, csr_darwin_aarch64_aapcs, implicit-def $lr, implicit $sp94  ; POSTSELECTION-NEXT:   ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp95  ; POSTSELECTION-NEXT:   B %bb.296entry:97  %hc = bitcast i32 100000 to i3298  br i1 %c, label %cont, label %end99cont:100  %add = add i32 %a, %hc101  call void @callee()102  ret i32 %add103end:104  ret i32 0105}106 107