brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.8 KiB · e000fec Raw
222 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -simplify-mir -verify-machineinstrs -mcpu=ppc -mtriple=powerpc64-ibm-aix-xcoff \3# RUN:   -stop-after=postrapseudos %s -o - | FileCheck %s4 5---6name: foo7alignment: 88tracksRegLiveness: true9body: |10  bb.0.entry:11  liveins: $x5, $x412    ; CHECK-LABEL: name: foo13    ; CHECK: liveins: $x4, $x514    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: early-clobber renamable $g8p3 = LQ 128, $x416    ; CHECK-NEXT: $x5 = OR8 $x7, $x717    ; CHECK-NEXT: STQ killed renamable $g8p3, 160, $x518    ; CHECK-NEXT: BLR8 implicit $lr8, implicit undef $rm, implicit $x519  %0:g8prc = LQ 128, $x420  $x5 = COPY %0.sub_gp8_x1:g8prc21  STQ %0, 160, $x522  BLR8 implicit $lr8, implicit undef $rm, implicit $x523...24 25---26name: foobar27alignment: 828tracksRegLiveness: true29body: |30  bb.0.entry:31  liveins: $x3, $x432    ; CHECK-LABEL: name: foobar33    ; CHECK: liveins: $x3, $x434    ; CHECK-NEXT: {{  $}}35    ; CHECK-NEXT: renamable $g8p3 = LQARX $x3, $x436    ; CHECK-NEXT: STQCX renamable $g8p3, $x3, $x4, implicit-def dead $cr037    ; CHECK-NEXT: $x3 = OR8 $x7, killed $x738    ; CHECK-NEXT: BLR8 implicit $lr8, implicit undef $rm, implicit $x339  %0:g8prc = LQARX $x3, $x440  STQCX %0:g8prc, $x3, $x4, implicit-def $cr041  $x3 = COPY %0.sub_gp8_x1:g8prc42  BLR8 implicit $lr8, implicit undef $rm, implicit $x343...44 45---46name: bar47alignment: 848tracksRegLiveness: true49body: |50  bb.0.entry:51  liveins: $x3, $x452    ; CHECK-LABEL: name: bar53    ; CHECK: liveins: $x3, $x454    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: early-clobber renamable $g8p2 = LQ 128, renamable $x356    ; CHECK-NEXT: STQ renamable $g8p2, 160, $x357    ; CHECK-NEXT: $x3 = OR8 $x4, killed $x458    ; CHECK-NEXT: BLR8 implicit $lr8, implicit undef $rm, implicit $x359  %0:g8rc_nox0 = COPY $x360  %1:g8prc = LQ 128, %061  STQ %1, 160, $x362  $x3 = COPY %1.sub_gp8_x0:g8prc63  BLR8 implicit $lr8, implicit undef $rm, implicit $x364...65 66# `spill_g8prc`'s code contains undefined behaviors. This code is only to67# demonstrate correctness of spiller.68---69name: spill_g8prc70alignment: 871tracksRegLiveness: true72body: |73  bb.0.entry:74  liveins: $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x1275    ; CHECK-LABEL: name: spill_g8prc76    ; CHECK: liveins: $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x14, $x15, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $x29, $x30, $x31, $x277    ; CHECK-NEXT: {{  $}}78    ; CHECK-NEXT: STD killed $x14, -144, $x1 :: (store (s64) into %fixed-stack.17, align 16)79    ; CHECK-NEXT: STD killed $x15, -136, $x1 :: (store (s64) into %fixed-stack.16)80    ; CHECK-NEXT: STD killed $x16, -128, $x1 :: (store (s64) into %fixed-stack.15, align 16)81    ; CHECK-NEXT: STD killed $x17, -120, $x1 :: (store (s64) into %fixed-stack.14)82    ; CHECK-NEXT: STD killed $x18, -112, $x1 :: (store (s64) into %fixed-stack.13, align 16)83    ; CHECK-NEXT: STD killed $x19, -104, $x1 :: (store (s64) into %fixed-stack.12)84    ; CHECK-NEXT: STD killed $x20, -96, $x1 :: (store (s64) into %fixed-stack.11, align 16)85    ; CHECK-NEXT: STD killed $x21, -88, $x1 :: (store (s64) into %fixed-stack.10)86    ; CHECK-NEXT: STD killed $x22, -80, $x1 :: (store (s64) into %fixed-stack.9, align 16)87    ; CHECK-NEXT: STD killed $x23, -72, $x1 :: (store (s64) into %fixed-stack.8)88    ; CHECK-NEXT: STD killed $x24, -64, $x1 :: (store (s64) into %fixed-stack.7, align 16)89    ; CHECK-NEXT: STD killed $x25, -56, $x1 :: (store (s64) into %fixed-stack.6)90    ; CHECK-NEXT: STD killed $x26, -48, $x1 :: (store (s64) into %fixed-stack.5, align 16)91    ; CHECK-NEXT: STD killed $x27, -40, $x1 :: (store (s64) into %fixed-stack.4)92    ; CHECK-NEXT: STD killed $x28, -32, $x1 :: (store (s64) into %fixed-stack.3, align 16)93    ; CHECK-NEXT: STD killed $x29, -24, $x1 :: (store (s64) into %fixed-stack.2)94    ; CHECK-NEXT: STD killed $x30, -16, $x1 :: (store (s64) into %fixed-stack.1, align 16)95    ; CHECK-NEXT: STD killed $x31, -8, $x1 :: (store (s64) into %fixed-stack.0)96    ; CHECK-NEXT: STD killed $x2, -152, $x1 :: (store (s64) into %stack.4)97    ; CHECK-NEXT: $x7 = OR8 $x3, $x398    ; CHECK-NEXT: renamable $g8p4 = LQARX $x5, $x699    ; CHECK-NEXT: STD killed $x8, -176, $x1100    ; CHECK-NEXT: STD killed $x9, -168, $x1101    ; CHECK-NEXT: renamable $g8p1 = LQARX $x3, renamable $x4102    ; CHECK-NEXT: renamable $g8p4 = LQARX renamable $x7, renamable $x4103    ; CHECK-NEXT: STD killed $x8, -192, $x1104    ; CHECK-NEXT: STD killed $x9, -184, $x1105    ; CHECK-NEXT: renamable $g8p4 = LQARX renamable $x7, renamable $x4106    ; CHECK-NEXT: STD killed $x8, -208, $x1107    ; CHECK-NEXT: STD killed $x9, -200, $x1108    ; CHECK-NEXT: renamable $g8p4 = LQARX renamable $x7, renamable $x4109    ; CHECK-NEXT: STD killed $x8, -224, $x1110    ; CHECK-NEXT: STD killed $x9, -216, $x1111    ; CHECK-NEXT: renamable $g8p12 = LQARX renamable $x7, renamable $x4112    ; CHECK-NEXT: renamable $g8p11 = LQARX renamable $x7, renamable $x4113    ; CHECK-NEXT: renamable $g8p10 = LQARX renamable $x7, renamable $x4114    ; CHECK-NEXT: renamable $g8p9 = LQARX renamable $x7, renamable $x4115    ; CHECK-NEXT: renamable $g8p8 = LQARX renamable $x7, renamable $x4116    ; CHECK-NEXT: renamable $g8p7 = LQARX renamable $x7, renamable $x4117    ; CHECK-NEXT: renamable $g8p15 = LQARX renamable $x7, renamable $x4118    ; CHECK-NEXT: renamable $g8p13 = LQARX renamable $x7, renamable $x4119    ; CHECK-NEXT: renamable $g8p14 = LQARX renamable $x7, renamable $x4120    ; CHECK-NEXT: renamable $g8p5 = LQARX renamable $x7, renamable $x4121    ; CHECK-NEXT: renamable $g8p4 = LQARX renamable $x7, renamable $x4122    ; CHECK-NEXT: STQCX killed renamable $g8p4, renamable $x7, renamable $x4, implicit-def dead $cr0123    ; CHECK-NEXT: STQCX killed renamable $g8p5, renamable $x7, renamable $x4, implicit-def dead $cr0124    ; CHECK-NEXT: STQCX killed renamable $g8p14, renamable $x7, renamable $x4, implicit-def dead $cr0125    ; CHECK-NEXT: STQCX killed renamable $g8p13, renamable $x7, renamable $x4, implicit-def dead $cr0126    ; CHECK-NEXT: STQCX killed renamable $g8p15, renamable $x7, renamable $x4, implicit-def dead $cr0127    ; CHECK-NEXT: STQCX killed renamable $g8p7, renamable $x7, renamable $x4, implicit-def dead $cr0128    ; CHECK-NEXT: STQCX killed renamable $g8p8, renamable $x7, renamable $x4, implicit-def dead $cr0129    ; CHECK-NEXT: STQCX killed renamable $g8p9, renamable $x7, renamable $x4, implicit-def dead $cr0130    ; CHECK-NEXT: STQCX killed renamable $g8p10, renamable $x7, renamable $x4, implicit-def dead $cr0131    ; CHECK-NEXT: STQCX killed renamable $g8p11, renamable $x7, renamable $x4, implicit-def dead $cr0132    ; CHECK-NEXT: STQCX killed renamable $g8p12, renamable $x7, renamable $x4, implicit-def dead $cr0133    ; CHECK-NEXT: $x8 = LD -224, $x1134    ; CHECK-NEXT: $x9 = LD -216, $x1135    ; CHECK-NEXT: STQCX killed renamable $g8p4, renamable $x7, renamable $x4, implicit-def dead $cr0136    ; CHECK-NEXT: $x8 = LD -208, $x1137    ; CHECK-NEXT: $x9 = LD -200, $x1138    ; CHECK-NEXT: STQCX killed renamable $g8p4, renamable $x7, renamable $x4, implicit-def dead $cr0139    ; CHECK-NEXT: $x8 = LD -192, $x1140    ; CHECK-NEXT: $x9 = LD -184, $x1141    ; CHECK-NEXT: STQCX killed renamable $g8p4, renamable $x7, renamable $x4, implicit-def dead $cr0142    ; CHECK-NEXT: STQCX renamable $g8p1, killed renamable $x7, killed renamable $x4, implicit-def dead $cr0143    ; CHECK-NEXT: $x8 = LD -176, $x1144    ; CHECK-NEXT: $x9 = LD -168, $x1145    ; CHECK-NEXT: STQCX killed renamable $g8p4, $x5, $x6, implicit-def dead $cr0146    ; CHECK-NEXT: $x2 = LD -152, $x1 :: (load (s64) from %stack.4)147    ; CHECK-NEXT: $x31 = LD -8, $x1 :: (load (s64) from %fixed-stack.0)148    ; CHECK-NEXT: $x30 = LD -16, $x1 :: (load (s64) from %fixed-stack.1, align 16)149    ; CHECK-NEXT: $x29 = LD -24, $x1 :: (load (s64) from %fixed-stack.2)150    ; CHECK-NEXT: $x28 = LD -32, $x1 :: (load (s64) from %fixed-stack.3, align 16)151    ; CHECK-NEXT: $x27 = LD -40, $x1 :: (load (s64) from %fixed-stack.4)152    ; CHECK-NEXT: $x26 = LD -48, $x1 :: (load (s64) from %fixed-stack.5, align 16)153    ; CHECK-NEXT: $x25 = LD -56, $x1 :: (load (s64) from %fixed-stack.6)154    ; CHECK-NEXT: $x24 = LD -64, $x1 :: (load (s64) from %fixed-stack.7, align 16)155    ; CHECK-NEXT: $x23 = LD -72, $x1 :: (load (s64) from %fixed-stack.8)156    ; CHECK-NEXT: $x22 = LD -80, $x1 :: (load (s64) from %fixed-stack.9, align 16)157    ; CHECK-NEXT: $x21 = LD -88, $x1 :: (load (s64) from %fixed-stack.10)158    ; CHECK-NEXT: $x20 = LD -96, $x1 :: (load (s64) from %fixed-stack.11, align 16)159    ; CHECK-NEXT: $x19 = LD -104, $x1 :: (load (s64) from %fixed-stack.12)160    ; CHECK-NEXT: $x18 = LD -112, $x1 :: (load (s64) from %fixed-stack.13, align 16)161    ; CHECK-NEXT: $x17 = LD -120, $x1 :: (load (s64) from %fixed-stack.14)162    ; CHECK-NEXT: $x16 = LD -128, $x1 :: (load (s64) from %fixed-stack.15, align 16)163    ; CHECK-NEXT: $x15 = LD -136, $x1 :: (load (s64) from %fixed-stack.16)164    ; CHECK-NEXT: $x14 = LD -144, $x1 :: (load (s64) from %fixed-stack.17, align 16)165    ; CHECK-NEXT: BLR8 implicit $lr8, implicit undef $rm, implicit $x3166  %addr0:g8rc_nox0 = COPY $x3167  %addr1:g8rc = COPY $x4168  %0:g8prc = LQARX $x5, $x6169  %1:g8prc = LQARX %addr0, %addr1170  %2:g8prc = LQARX %addr0, %addr1171  %3:g8prc = LQARX %addr0, %addr1172  %4:g8prc = LQARX %addr0, %addr1173  %5:g8prc = LQARX %addr0, %addr1174  %6:g8prc = LQARX %addr0, %addr1175  %7:g8prc = LQARX %addr0, %addr1176  %8:g8prc = LQARX %addr0, %addr1177  %9:g8prc = LQARX %addr0, %addr1178  %10:g8prc = LQARX %addr0, %addr1179  %11:g8prc = LQARX %addr0, %addr1180  %12:g8prc = LQARX %addr0, %addr1181  %13:g8prc = LQARX %addr0, %addr1182  %14:g8prc = LQARX %addr0, %addr1183  %15:g8prc = LQARX %addr0, %addr1184  STQCX %15:g8prc, %addr0, %addr1, implicit-def $cr0185  STQCX %14:g8prc, %addr0, %addr1, implicit-def $cr0186  STQCX %13:g8prc, %addr0, %addr1, implicit-def $cr0187  STQCX %12:g8prc, %addr0, %addr1, implicit-def $cr0188  STQCX %11:g8prc, %addr0, %addr1, implicit-def $cr0189  STQCX %10:g8prc, %addr0, %addr1, implicit-def $cr0190  STQCX %9:g8prc, %addr0, %addr1, implicit-def $cr0191  STQCX %8:g8prc, %addr0, %addr1, implicit-def $cr0192  STQCX %7:g8prc, %addr0, %addr1, implicit-def $cr0193  STQCX %6:g8prc, %addr0, %addr1, implicit-def $cr0194  STQCX %5:g8prc, %addr0, %addr1, implicit-def $cr0195  STQCX %4:g8prc, %addr0, %addr1, implicit-def $cr0196  STQCX %3:g8prc, %addr0, %addr1, implicit-def $cr0197  STQCX %2:g8prc, %addr0, %addr1, implicit-def $cr0198  STQCX %1:g8prc, %addr0, %addr1, implicit-def $cr0199  STQCX %0:g8prc, $x5, $x6, implicit-def $cr0200  $x3 = COPY %1.sub_gp8_x1:g8prc201  BLR8 implicit $lr8, implicit undef $rm, implicit $x3202...203 204---205name: copy_g8prc206alignment: 8207tracksRegLiveness: true208body: |209  bb.0.entry:210  liveins: $g8p8211    ; CHECK-LABEL: name: copy_g8prc212    ; CHECK: liveins: $g8p8213    ; CHECK-NEXT: {{  $}}214    ; CHECK-NEXT: $x4 = OR8 $x16, $x16215    ; CHECK-NEXT: $x5 = OR8 $x17, $x17216    ; CHECK-NEXT: BLR8 implicit $lr8, implicit undef $rm, implicit $x5, implicit $x4217  %0:g8prc = COPY $g8p8218  $x5 = COPY %0.sub_gp8_x1:g8prc219  $x4 = COPY %0.sub_gp8_x0:g8prc220  BLR8 implicit $lr8, implicit undef $rm, implicit $x5, implicit $x4221...222