brintos

brintos / llvm-project-archived public Read only

0
0
Text · 131.9 KiB · 258ddf6 Raw
2081 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=ppc -stop-after=machine-cp -verify-machineinstrs < %s | \3; RUN: FileCheck --check-prefix=32BIT %s4 5; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -mcpu=ppc -stop-after=machine-cp -verify-machineinstrs < %s | \6; RUN: FileCheck --check-prefix=64BIT %s7 8define void @call_test_chars() {9  ; 32BIT-LABEL: name: call_test_chars10  ; 32BIT: bb.0.entry:11  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r112  ; 32BIT-NEXT:   $r3 = LI 9713  ; 32BIT-NEXT:   $r4 = LI 9714  ; 32BIT-NEXT:   $r5 = LI 9715  ; 32BIT-NEXT:   $r6 = LI 9716  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_chars>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit killed $r3, implicit killed $r4, implicit killed $r5, implicit killed $r6, implicit $r2, implicit-def $r1, implicit-def dead $r317  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r118  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm19  ;20  ; 64BIT-LABEL: name: call_test_chars21  ; 64BIT: bb.0.entry:22  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r123  ; 64BIT-NEXT:   $x3 = LI8 9724  ; 64BIT-NEXT:   $x4 = LI8 9725  ; 64BIT-NEXT:   $x5 = LI8 9726  ; 64BIT-NEXT:   $x6 = LI8 9727  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_chars>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit killed $x4, implicit killed $x5, implicit killed $x6, implicit $x2, implicit-def $r1, implicit-def dead $x328  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r129  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm30entry:31  call i8 @test_chars(i8 signext 97, i8 signext 97, i8 signext 97, i8 signext 97)32  ret void33}34 35define signext i8 @test_chars(i8 signext %c1, i8 signext %c2, i8 signext %c3, i8 signext %c4) {36  ; 32BIT-LABEL: name: test_chars37  ; 32BIT: bb.0.entry:38  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r639  ; 32BIT-NEXT: {{  $}}40  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r441  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r542  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r643  ; 32BIT-NEXT:   renamable $r3 = EXTSB killed renamable $r344  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r345  ;46  ; 64BIT-LABEL: name: test_chars47  ; 64BIT: bb.0.entry:48  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x649  ; 64BIT-NEXT: {{  $}}50  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r3, renamable $r4, implicit killed $x4, implicit killed $x351  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r5, implicit killed $x552  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r6, implicit killed $x6, implicit-def $x353  ; 64BIT-NEXT:   renamable $x3 = EXTSB8 killed renamable $x354  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x355entry:56  %conv = sext i8 %c1 to i3257  %conv1 = sext i8 %c2 to i3258  %add = add nsw i32 %conv, %conv159  %conv2 = sext i8 %c3 to i3260  %add3 = add nsw i32 %add, %conv261  %conv4 = sext i8 %c4 to i3262  %add5 = add nsw i32 %add3, %conv463  %conv6 = trunc i32 %add5 to i864  ret i8 %conv665}66 67define void @call_test_chars_mix() {68  ; 32BIT-LABEL: name: call_test_chars_mix69  ; 32BIT: bb.0.entry:70  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r171  ; 32BIT-NEXT:   $r3 = LI 9772  ; 32BIT-NEXT:   $r4 = LI 22573  ; 32BIT-NEXT:   $r5 = LI 9774  ; 32BIT-NEXT:   $r6 = LI -3175  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_chars_mix>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit killed $r3, implicit killed $r4, implicit killed $r5, implicit killed $r6, implicit $r2, implicit-def $r1, implicit-def dead $r376  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r177  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm78  ;79  ; 64BIT-LABEL: name: call_test_chars_mix80  ; 64BIT: bb.0.entry:81  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r182  ; 64BIT-NEXT:   $x3 = LI8 9783  ; 64BIT-NEXT:   $x4 = LI8 22584  ; 64BIT-NEXT:   $x5 = LI8 9785  ; 64BIT-NEXT:   $x6 = LI8 -3186  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_chars_mix>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit killed $x4, implicit killed $x5, implicit killed $x6, implicit $x2, implicit-def $r1, implicit-def dead $x387  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r188  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm89entry:90  call i8 @test_chars_mix(i8 signext 97, i8 zeroext -31, i8 zeroext 97, i8 signext -31)91  ret void92}93 94define signext i8 @test_chars_mix(i8 signext %c1, i8 zeroext %c2, i8 zeroext %c3, i8 signext %c4) {95  ; 32BIT-LABEL: name: test_chars_mix96  ; 32BIT: bb.0.entry:97  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r698  ; 32BIT-NEXT: {{  $}}99  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r4100  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r5101  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r6102  ; 32BIT-NEXT:   renamable $r3 = EXTSB killed renamable $r3103  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3104  ;105  ; 64BIT-LABEL: name: test_chars_mix106  ; 64BIT: bb.0.entry:107  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x6108  ; 64BIT-NEXT: {{  $}}109  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r3, renamable $r4, implicit killed $x4, implicit killed $x3110  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r5, implicit killed $x5111  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r6, implicit killed $x6, implicit-def $x3112  ; 64BIT-NEXT:   renamable $x3 = EXTSB8 killed renamable $x3113  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3114entry:115  %conv = sext i8 %c1 to i32116  %conv1 = zext i8 %c2 to i32117  %add = add nsw i32 %conv, %conv1118  %conv2 = zext i8 %c3 to i32119  %add3 = add nsw i32 %add, %conv2120  %conv4 = sext i8 %c4 to i32121  %add5 = add nsw i32 %add3, %conv4122  %conv6 = trunc i32 %add5 to i8123  ret i8 %conv6124}125 126@global_i1 = global i8 0, align 1127 128define  void @test_i1(i1 %b)  {129  ; 32BIT-LABEL: name: test_i1130  ; 32BIT: bb.0.entry:131  ; 32BIT-NEXT:   liveins: $r3132  ; 32BIT-NEXT: {{  $}}133  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @global_i1, $r2 :: (load (s32) from got)134  ; 32BIT-NEXT:   renamable $r3 = RLWINM killed renamable $r3, 0, 31, 31135  ; 32BIT-NEXT:   STB killed renamable $r3, 0, killed renamable $r4 :: (store (s8) into @global_i1)136  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm137  ;138  ; 64BIT-LABEL: name: test_i1139  ; 64BIT: bb.0.entry:140  ; 64BIT-NEXT:   liveins: $x3141  ; 64BIT-NEXT: {{  $}}142  ; 64BIT-NEXT:   renamable $x4 = LDtoc @global_i1, $x2 :: (load (s64) from got)143  ; 64BIT-NEXT:   renamable $r3 = RLWINM renamable $r3, 0, 31, 31, implicit killed $x3144  ; 64BIT-NEXT:   STB killed renamable $r3, 0, killed renamable $x4 :: (store (s8) into @global_i1)145  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm146  entry:147   %frombool = zext i1 %b to i8148   store i8 %frombool, ptr @global_i1, align 1149   ret void150}151 152define void @call_test_i1() {153  ; 32BIT-LABEL: name: call_test_i1154  ; 32BIT: bb.0.entry:155  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1156  ; 32BIT-NEXT:   $r3 = LI 1157  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_i1>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit killed $r3, implicit $r2, implicit-def $r1158  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1159  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm160  ;161  ; 64BIT-LABEL: name: call_test_i1162  ; 64BIT: bb.0.entry:163  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1164  ; 64BIT-NEXT:   $x3 = LI8 1165  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_i1>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit $x2, implicit-def $r1166  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1167  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm168entry:169  call void @test_i1(i1 1)170  ret void171}172 173define void @test_i1zext(i1 zeroext %b) {174  ; 32BIT-LABEL: name: test_i1zext175  ; 32BIT: bb.0.entry:176  ; 32BIT-NEXT:   liveins: $r3177  ; 32BIT-NEXT: {{  $}}178  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @global_i1, $r2 :: (load (s32) from got)179  ; 32BIT-NEXT:   STB killed renamable $r3, 0, killed renamable $r4 :: (store (s8) into @global_i1)180  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm181  ;182  ; 64BIT-LABEL: name: test_i1zext183  ; 64BIT: bb.0.entry:184  ; 64BIT-NEXT:   liveins: $x3185  ; 64BIT-NEXT: {{  $}}186  ; 64BIT-NEXT:   renamable $x4 = LDtoc @global_i1, $x2 :: (load (s64) from got)187  ; 64BIT-NEXT:   STB8 killed renamable $x3, 0, killed renamable $x4 :: (store (s8) into @global_i1)188  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm189  entry:190    %frombool = zext i1 %b to i8191    store i8 %frombool, ptr @global_i1, align 1192    ret void193  }194 195define i32 @test_ints(i32 signext %a, i32 zeroext %b, i32 zeroext %c, i32 signext %d, i32 signext %e, i32 signext %f, i32 signext %g, i32 signext %h) {196  ; 32BIT-LABEL: name: test_ints197  ; 32BIT: bb.0.entry:198  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10199  ; 32BIT-NEXT: {{  $}}200  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r4201  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r5202  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r6203  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r7204  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r8205  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r9206  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r10207  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3208  ;209  ; 64BIT-LABEL: name: test_ints210  ; 64BIT: bb.0.entry:211  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10212  ; 64BIT-NEXT: {{  $}}213  ; 64BIT-NEXT:   renamable $r3 = ADD4 renamable $r3, renamable $r4, implicit killed $x4, implicit killed $x3214  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r5, implicit killed $x5215  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r6, implicit killed $x6216  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r7, implicit killed $x7217  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r8, implicit killed $x8218  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r9, implicit killed $x9219  ; 64BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, renamable $r10, implicit killed $x10, implicit-def $x3220  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3221entry:222    %add = add i32 %a, %b223    %add1 = add i32 %add, %c224    %add2 = add i32 %add1, %d225    %add3 = add i32 %add2, %e226    %add4 = add i32 %add3, %f227    %add5 = add i32 %add4, %g228    %add6 = add i32 %add5, %h229    ret i32 %add6230}231 232define void @call_test_ints() {233  ; 32BIT-LABEL: name: call_test_ints234  ; 32BIT: bb.0.entry:235  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1236  ; 32BIT-NEXT:   $r3 = LI 1237  ; 32BIT-NEXT:   $r4 = LI 1238  ; 32BIT-NEXT:   $r5 = LIS 32768239  ; 32BIT-NEXT:   $r6 = LIS 32768240  ; 32BIT-NEXT:   $r7 = LI 1241  ; 32BIT-NEXT:   $r8 = LI 1242  ; 32BIT-NEXT:   $r9 = LI 1243  ; 32BIT-NEXT:   $r10 = LI 1244  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_ints>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit killed $r3, implicit killed $r4, implicit killed $r5, implicit killed $r6, implicit killed $r7, implicit killed $r8, implicit killed $r9, implicit killed $r10, implicit $r2, implicit-def $r1, implicit-def dead $r3245  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1246  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm247  ;248  ; 64BIT-LABEL: name: call_test_ints249  ; 64BIT: bb.0.entry:250  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1251  ; 64BIT-NEXT:   renamable $x3 = LI8 1252  ; 64BIT-NEXT:   renamable $x5 = RLDIC killed renamable $x3, 31, 32253  ; 64BIT-NEXT:   $x3 = LI8 1254  ; 64BIT-NEXT:   $x4 = LI8 1255  ; 64BIT-NEXT:   $x6 = LIS8 32768256  ; 64BIT-NEXT:   $x7 = LI8 1257  ; 64BIT-NEXT:   $x8 = LI8 1258  ; 64BIT-NEXT:   $x9 = LI8 1259  ; 64BIT-NEXT:   $x10 = LI8 1260  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_ints>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit killed $x4, implicit $x5, implicit killed $x6, implicit killed $x7, implicit killed $x8, implicit killed $x9, implicit killed $x10, implicit $x2, implicit-def $r1, implicit-def dead $x3261  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1262  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm263entry:264  call i32 @test_ints(i32 signext 1, i32 zeroext 1, i32 zeroext 2147483648, i32 signext -2147483648, i32 signext 1, i32 signext 1, i32 signext 1, i32 signext 1)265  ret void266}267 268define void @call_test_i64() {269  ; 32BIT-LABEL: name: call_test_i64270  ; 32BIT: bb.0.entry:271  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1272  ; 32BIT-NEXT:   $r3 = LI 0273  ; 32BIT-NEXT:   $r4 = LI 1274  ; 32BIT-NEXT:   $r5 = LI 0275  ; 32BIT-NEXT:   $r6 = LI 2276  ; 32BIT-NEXT:   $r7 = LI 0277  ; 32BIT-NEXT:   $r8 = LI 3278  ; 32BIT-NEXT:   $r9 = LI 0279  ; 32BIT-NEXT:   $r10 = LI 4280  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_i64>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit killed $r3, implicit killed $r4, implicit killed $r5, implicit killed $r6, implicit killed $r7, implicit killed $r8, implicit killed $r9, implicit killed $r10, implicit $r2, implicit-def $r1, implicit-def dead $r3, implicit-def dead $r4281  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1282  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm283  ;284  ; 64BIT-LABEL: name: call_test_i64285  ; 64BIT: bb.0.entry:286  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1287  ; 64BIT-NEXT:   $x3 = LI8 1288  ; 64BIT-NEXT:   $x4 = LI8 2289  ; 64BIT-NEXT:   $x5 = LI8 3290  ; 64BIT-NEXT:   $x6 = LI8 4291  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_i64>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit killed $x4, implicit killed $x5, implicit killed $x6, implicit $x2, implicit-def $r1, implicit-def dead $x3292  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1293  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm294entry:295  call i64 @test_i64(i64 1, i64 2, i64 3, i64 4)296  ret void297}298 299define i64 @test_i64(i64 %a, i64 %b, i64 %c, i64 %d) {300  ; 32BIT-LABEL: name: test_i64301  ; 32BIT: bb.0.entry:302  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10303  ; 32BIT-NEXT: {{  $}}304  ; 32BIT-NEXT:   renamable $r4 = ADDC killed renamable $r4, killed renamable $r6, implicit-def $carry305  ; 32BIT-NEXT:   renamable $r3 = ADDE killed renamable $r3, killed renamable $r5, implicit-def dead $carry, implicit killed $carry306  ; 32BIT-NEXT:   renamable $r4 = ADDC killed renamable $r4, killed renamable $r8, implicit-def $carry307  ; 32BIT-NEXT:   renamable $r3 = ADDE killed renamable $r3, killed renamable $r7, implicit-def dead $carry, implicit killed $carry308  ; 32BIT-NEXT:   renamable $r4 = ADDC killed renamable $r4, killed renamable $r10, implicit-def $carry309  ; 32BIT-NEXT:   renamable $r3 = ADDE killed renamable $r3, killed renamable $r9, implicit-def dead $carry, implicit killed $carry310  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3, implicit $r4311  ;312  ; 64BIT-LABEL: name: test_i64313  ; 64BIT: bb.0.entry:314  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x6315  ; 64BIT-NEXT: {{  $}}316  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x4317  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x5318  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x6319  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3320entry:321  %add = add nsw i64 %a, %b322  %add1 = add nsw i64 %add, %c323  %add2 = add nsw i64 %add1, %d324  ret i64 %add2325}326 327define void @call_test_int_ptr() {328  ; 32BIT-LABEL: name: call_test_int_ptr329  ; 32BIT: bb.0.entry:330  ; 32BIT-NEXT:   renamable $r3 = LI 0331  ; 32BIT-NEXT:   STW killed renamable $r3, 0, %stack.0.b :: (store (s32) into %ir.b)332  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1333  ; 32BIT-NEXT:   renamable $r3 = ADDI %stack.0.b, 0334  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_int_ptr>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r2, implicit-def $r1335  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1336  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm337  ;338  ; 64BIT-LABEL: name: call_test_int_ptr339  ; 64BIT: bb.0.entry:340  ; 64BIT-NEXT:   renamable $x3 = LI8 0341  ; 64BIT-NEXT:   STW8 killed renamable $x3, 0, %stack.0.b :: (store (s32) into %ir.b)342  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1343  ; 64BIT-NEXT:   renamable $x3 = ADDI8 %stack.0.b, 0344  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_int_ptr>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1345  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1346  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm347entry:348  %b = alloca i32, align 4349  store i32 0, ptr %b, align 4350  call void @test_int_ptr(ptr %b)351  ret void352}353 354define void @test_int_ptr(ptr %a) {355  ; 32BIT-LABEL: name: test_int_ptr356  ; 32BIT: bb.0.entry:357  ; 32BIT-NEXT:   liveins: $r3358  ; 32BIT-NEXT: {{  $}}359  ; 32BIT-NEXT:   STW killed renamable $r3, 0, %stack.0.a.addr :: (store (s32) into %ir.a.addr, align 8)360  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm361  ;362  ; 64BIT-LABEL: name: test_int_ptr363  ; 64BIT: bb.0.entry:364  ; 64BIT-NEXT:   liveins: $x3365  ; 64BIT-NEXT: {{  $}}366  ; 64BIT-NEXT:   STD killed renamable $x3, 0, %stack.0.a.addr :: (store (s64) into %ir.a.addr)367  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm368entry:369  %a.addr = alloca ptr, align 8370  store ptr %a, ptr %a.addr, align 8371  ret void372}373 374define i32 @caller(i32 %i)  {375  ; 32BIT-LABEL: name: caller376  ; 32BIT: bb.0.entry:377  ; 32BIT-NEXT:   liveins: $r3378  ; 32BIT-NEXT: {{  $}}379  ; 32BIT-NEXT:   STW renamable $r3, 0, %stack.0.i.addr :: (store (s32) into %ir.i.addr)380  ; 32BIT-NEXT:   renamable $r3 = CNTLZW killed renamable $r3381  ; 32BIT-NEXT:   renamable $r3 = NOR killed renamable $r3, renamable $r3382  ; 32BIT-NEXT:   renamable $r3 = RLWINM killed renamable $r3, 27, 31, 31383  ; 32BIT-NEXT:   STB renamable $r3, 0, %stack.1.b :: (store (s8) into %ir.b)384  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1385  ; 32BIT-NEXT:   BL_NOP <mcsymbol .call_test_bool[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r2, implicit-def $r1, implicit-def $r3386  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1387  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3388  ;389  ; 64BIT-LABEL: name: caller390  ; 64BIT: bb.0.entry:391  ; 64BIT-NEXT:   liveins: $x3392  ; 64BIT-NEXT: {{  $}}393  ; 64BIT-NEXT:   STW renamable $r3, 0, %stack.0.i.addr :: (store (s32) into %ir.i.addr)394  ; 64BIT-NEXT:   renamable $r3 = CNTLZW renamable $r3, implicit killed $x3395  ; 64BIT-NEXT:   renamable $r3 = RLWINM killed renamable $r3, 27, 5, 31396  ; 64BIT-NEXT:   renamable $r3 = XORI killed renamable $r3, 1, implicit-def $x3397  ; 64BIT-NEXT:   STB renamable $r3, 0, %stack.1.b :: (store (s8) into %ir.b)398  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1399  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .call_test_bool[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x2, implicit-def $r1, implicit-def $x3400  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1401  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3402entry:403  %i.addr = alloca i32, align 4404  %b = alloca i8, align 1405  store i32 %i, ptr %i.addr, align 4406  %0 = load i32, ptr %i.addr, align 4407  %cmp = icmp ne i32 %0, 0408  %frombool = zext i1 %cmp to i8409  store i8 %frombool, ptr %b, align 1410  %1 = load i8, ptr %b, align 1411  %tobool = trunc i8 %1 to i1412  %call = call i32 @call_test_bool(i1 zeroext %tobool)413  ret i32 %call414}415 416declare i32 @call_test_bool(i1 zeroext)417 418@f1 = global float 0.000000e+00, align 4419@d1 = global double 0.000000e+00, align 8420 421define void @call_test_floats() {422  ; 32BIT-LABEL: name: call_test_floats423  ; 32BIT: bb.0.entry:424  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)425  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)426  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1427  ; 32BIT-NEXT:   $f2 = COPY renamable $f1428  ; 32BIT-NEXT:   $f3 = COPY renamable $f1429  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_floats>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $f1, implicit killed $f2, implicit killed $f3, implicit $r2, implicit-def $r1, implicit-def dead $f1430  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1431  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm432  ;433  ; 64BIT-LABEL: name: call_test_floats434  ; 64BIT: bb.0.entry:435  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)436  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)437  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1438  ; 64BIT-NEXT:   $f2 = COPY renamable $f1439  ; 64BIT-NEXT:   $f3 = COPY renamable $f1440  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_floats>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $f1, implicit killed $f2, implicit killed $f3, implicit $x2, implicit-def $r1, implicit-def dead $f1441  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1442  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm443entry:444  %0 = load float, ptr @f1, align 4445  call float @test_floats(float %0, float %0, float %0)446  ret void447}448 449define float @test_floats(float %f1, float %f2, float %f3) {450  ; 32BIT-LABEL: name: test_floats451  ; 32BIT: bb.0.entry:452  ; 32BIT-NEXT:   liveins: $f1, $f2, $f3453  ; 32BIT-NEXT: {{  $}}454  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADDS killed renamable $f1, killed renamable $f2, implicit $rm455  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADDS killed renamable $f0, killed renamable $f3, implicit $rm456  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $f1457  ;458  ; 64BIT-LABEL: name: test_floats459  ; 64BIT: bb.0.entry:460  ; 64BIT-NEXT:   liveins: $f1, $f2, $f3461  ; 64BIT-NEXT: {{  $}}462  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADDS killed renamable $f1, killed renamable $f2, implicit $rm463  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADDS killed renamable $f0, killed renamable $f3, implicit $rm464  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $f1465entry:466  %add = fadd float %f1, %f2467  %add1 = fadd float %add, %f3468  ret float %add1469}470 471define void @call_test_fpr_max() {472  ; 32BIT-LABEL: name: call_test_fpr_max473  ; 32BIT: bb.0.entry:474  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d1, $r2 :: (load (s32) from got)475  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d1)476  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 128, 0, implicit-def dead $r1, implicit $r1477  ; 32BIT-NEXT:   STFD renamable $f1, 120, $r1 :: (store (s64) into stack + 120, basealign 16)478  ; 32BIT-NEXT:   STFD renamable $f1, 112, $r1 :: (store (s64) into stack + 112, align 16)479  ; 32BIT-NEXT:   STFD renamable $f1, 104, $r1 :: (store (s64) into stack + 104, basealign 16)480  ; 32BIT-NEXT:   STFD renamable $f1, 96, $r1 :: (store (s64) into stack + 96, align 16)481  ; 32BIT-NEXT:   STFD renamable $f1, 88, $r1 :: (store (s64) into stack + 88, basealign 16)482  ; 32BIT-NEXT:   STFD renamable $f1, 80, $r1 :: (store (s64) into stack + 80, align 16)483  ; 32BIT-NEXT:   STFD renamable $f1, 72, $r1 :: (store (s64) into stack + 72, basealign 16)484  ; 32BIT-NEXT:   STFD renamable $f1, 64, $r1 :: (store (s64) into stack + 64, align 16)485  ; 32BIT-NEXT:   $f2 = COPY renamable $f1486  ; 32BIT-NEXT:   $f3 = COPY renamable $f1487  ; 32BIT-NEXT:   $f4 = COPY renamable $f1488  ; 32BIT-NEXT:   $f5 = COPY renamable $f1489  ; 32BIT-NEXT:   $f6 = COPY renamable $f1490  ; 32BIT-NEXT:   $f7 = COPY renamable $f1491  ; 32BIT-NEXT:   $f8 = COPY renamable $f1492  ; 32BIT-NEXT:   $f9 = COPY renamable $f1493  ; 32BIT-NEXT:   $f10 = COPY renamable $f1494  ; 32BIT-NEXT:   $f11 = COPY renamable $f1495  ; 32BIT-NEXT:   $f12 = COPY renamable $f1496  ; 32BIT-NEXT:   $f13 = COPY renamable $f1497  ; 32BIT-NEXT:   STFD renamable $f1, 56, $r1 :: (store (s64) into stack + 56, basealign 16)498  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_fpr_max>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $f1, implicit killed $f2, implicit killed $f3, implicit killed $f4, implicit killed $f5, implicit killed $f6, implicit killed $f7, implicit killed $f8, implicit killed $f9, implicit killed $f10, implicit killed $f11, implicit killed $f12, implicit killed $f13, implicit $r2, implicit-def $r1, implicit-def dead $f1499  ; 32BIT-NEXT:   ADJCALLSTACKUP 128, 0, implicit-def dead $r1, implicit $r1500  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm501  ;502  ; 64BIT-LABEL: name: call_test_fpr_max503  ; 64BIT: bb.0.entry:504  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d1, $x2 :: (load (s64) from got)505  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d1)506  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 152, 0, implicit-def dead $r1, implicit $r1507  ; 64BIT-NEXT:   STFD renamable $f1, 144, $x1 :: (store (s64) into stack + 144, align 16)508  ; 64BIT-NEXT:   STFD renamable $f1, 136, $x1 :: (store (s64) into stack + 136, basealign 16)509  ; 64BIT-NEXT:   STFD renamable $f1, 128, $x1 :: (store (s64) into stack + 128, align 16)510  ; 64BIT-NEXT:   STFD renamable $f1, 120, $x1 :: (store (s64) into stack + 120, basealign 16)511  ; 64BIT-NEXT:   $f2 = COPY renamable $f1512  ; 64BIT-NEXT:   $f3 = COPY renamable $f1513  ; 64BIT-NEXT:   $f4 = COPY renamable $f1514  ; 64BIT-NEXT:   $f5 = COPY renamable $f1515  ; 64BIT-NEXT:   $f6 = COPY renamable $f1516  ; 64BIT-NEXT:   $f7 = COPY renamable $f1517  ; 64BIT-NEXT:   $f8 = COPY renamable $f1518  ; 64BIT-NEXT:   $f9 = COPY renamable $f1519  ; 64BIT-NEXT:   $f10 = COPY renamable $f1520  ; 64BIT-NEXT:   $f11 = COPY renamable $f1521  ; 64BIT-NEXT:   $f12 = COPY renamable $f1522  ; 64BIT-NEXT:   $f13 = COPY renamable $f1523  ; 64BIT-NEXT:   STFD renamable $f1, 112, $x1 :: (store (s64) into stack + 112, align 16)524  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_fpr_max>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $f1, implicit killed $f2, implicit killed $f3, implicit killed $f4, implicit killed $f5, implicit killed $f6, implicit killed $f7, implicit killed $f8, implicit killed $f9, implicit killed $f10, implicit killed $f11, implicit killed $f12, implicit killed $f13, implicit $x2, implicit-def $r1, implicit-def dead $f1525  ; 64BIT-NEXT:   ADJCALLSTACKUP 152, 0, implicit-def dead $r1, implicit $r1526  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm527entry:528  %0 = load double, ptr @d1, align 8529  call double @test_fpr_max(double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0, double %0)530  ret void531}532 533define double @test_fpr_max(double %d1, double %d2, double %d3, double %d4, double %d5, double %d6, double %d7, double %d8, double %d9, double %d10, double %d11, double %d12, double %d13) {534  ; 32BIT-LABEL: name: test_fpr_max535  ; 32BIT: bb.0.entry:536  ; 32BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f13537  ; 32BIT-NEXT: {{  $}}538  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm539  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm540  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f4, implicit $rm541  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f5, implicit $rm542  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f6, implicit $rm543  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f7, implicit $rm544  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f8, implicit $rm545  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f9, implicit $rm546  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f10, implicit $rm547  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f11, implicit $rm548  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f12, implicit $rm549  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f13, implicit $rm550  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $f1551  ;552  ; 64BIT-LABEL: name: test_fpr_max553  ; 64BIT: bb.0.entry:554  ; 64BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f13555  ; 64BIT-NEXT: {{  $}}556  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm557  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm558  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f4, implicit $rm559  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f5, implicit $rm560  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f6, implicit $rm561  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f7, implicit $rm562  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f8, implicit $rm563  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f9, implicit $rm564  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f10, implicit $rm565  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f11, implicit $rm566  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f12, implicit $rm567  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f13, implicit $rm568  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $f1569entry:570  %add = fadd double %d1, %d2571  %add1 = fadd double %add, %d3572  %add2 = fadd double %add1, %d4573  %add3 = fadd double %add2, %d5574  %add4 = fadd double %add3, %d6575  %add5 = fadd double %add4, %d7576  %add6 = fadd double %add5, %d8577  %add7 = fadd double %add6, %d9578  %add8 = fadd double %add7, %d10579  %add9 = fadd double %add8, %d11580  %add10 = fadd double %add9, %d12581  %add11 = fadd double %add10, %d13582  ret double %add11583}584 585define void @call_test_mix() {586  ; 32BIT-LABEL: name: call_test_mix587  ; 32BIT: bb.0.entry:588  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)589  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @d1, $r2 :: (load (s32) from got)590  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)591  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r4 :: (dereferenceable load (s64) from @d1)592  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1593  ; 32BIT-NEXT:   $r4 = LI 1594  ; 32BIT-NEXT:   $r7 = LI 97595  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_mix>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $f1, implicit $r4, implicit $f2, implicit killed $r7, implicit $r2, implicit-def $r1, implicit-def dead $r3596  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1597  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm598  ;599  ; 64BIT-LABEL: name: call_test_mix600  ; 64BIT: bb.0.entry:601  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)602  ; 64BIT-NEXT:   renamable $x4 = LDtoc @d1, $x2 :: (load (s64) from got)603  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)604  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x4 :: (dereferenceable load (s64) from @d1)605  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1606  ; 64BIT-NEXT:   $x4 = LI8 1607  ; 64BIT-NEXT:   $x6 = LI8 97608  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_mix>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $f1, implicit $x4, implicit $f2, implicit killed $x6, implicit $x2, implicit-def $r1, implicit-def dead $x3609  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1610  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm611entry:612  %0 = load float, ptr @f1, align 4613  %1 = load double, ptr @d1, align 8614  call i32 @test_mix(float %0, i32 1, double %1, i8 signext 97)615  ret void616}617 618define i32 @test_mix(float %f, i32 signext %i, double %d, i8 signext %c) {619  ; 32BIT-LABEL: name: test_mix620  ; 32BIT: bb.0.entry:621  ; 32BIT-NEXT:   liveins: $f1, $f2, $r4, $r7622  ; 32BIT-NEXT: {{  $}}623  ; 32BIT-NEXT:   renamable $r3 = LIS 17200624  ; 32BIT-NEXT:   STW killed renamable $r3, 0, %stack.1 :: (store (s32) into %stack.1, align 8)625  ; 32BIT-NEXT:   renamable $r3 = RLWINM killed renamable $r7, 0, 24, 31626  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r4, killed renamable $r3627  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.0, $r2 :: (load (s32) from got)628  ; 32BIT-NEXT:   renamable $r3 = XORIS killed renamable $r3, 32768629  ; 32BIT-NEXT:   STW killed renamable $r3, 4, %stack.1 :: (store (s32) into %stack.1 + 4)630  ; 32BIT-NEXT:   renamable $f0 = LFS 0, killed renamable $r4 :: (load (s32) from constant-pool)631  ; 32BIT-NEXT:   renamable $f3 = LFD 0, %stack.1 :: (load (s64) from %stack.1)632  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm633  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FRSP killed renamable $f1, implicit $rm634  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FSUB killed renamable $f3, killed renamable $f0, implicit $rm635  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FRSP killed renamable $f0, implicit $rm636  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADDS killed renamable $f0, killed renamable $f1, implicit $rm637  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm638  ; 32BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)639  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)640  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3641  ;642  ; 64BIT-LABEL: name: test_mix643  ; 64BIT: bb.0.entry:644  ; 64BIT-NEXT:   liveins: $f1, $f2, $x4, $x6645  ; 64BIT-NEXT: {{  $}}646  ; 64BIT-NEXT:   renamable $r3 = RLWINM renamable $r6, 0, 24, 31, implicit killed $x6647  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r4, killed renamable $r3, implicit killed $x4648  ; 64BIT-NEXT:   renamable $x3 = EXTSW_32_64 killed renamable $r3649  ; 64BIT-NEXT:   STD killed renamable $x3, 0, %stack.1 :: (store (s64) into %stack.1)650  ; 64BIT-NEXT:   renamable $f0 = LFD 0, %stack.1 :: (load (s64) from %stack.1)651  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm652  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FRSP killed renamable $f1, implicit $rm653  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FCFID killed renamable $f0, implicit $rm654  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FRSP killed renamable $f0, implicit $rm655  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADDS killed renamable $f0, killed renamable $f1, implicit $rm656  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm657  ; 64BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)658  ; 64BIT-NEXT:   renamable $x3 = LWZ8 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)659  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3660entry:661  %conv = fpext float %f to double662  %add = fadd double %conv, %d663  %conv1 = fptrunc double %add to float664  %conv2 = zext i8 %c to i32665  %add3 = add nsw i32 %i, %conv2666  %conv4 = sitofp i32 %add3 to float667  %add5 = fadd float %conv4, %conv1668  %conv6 = fptosi float %add5 to i32669  ret i32 %conv6670}671 672define i64 @callee_mixed_ints(i32 %a, i8 signext %b, i32 %c, i16 signext %d, i64 %e) {673  ; 32BIT-LABEL: name: callee_mixed_ints674  ; 32BIT: bb.0.entry:675  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r6, $r7, $r8676  ; 32BIT-NEXT: {{  $}}677  ; 32BIT-NEXT:   renamable $r4 = RLWINM killed renamable $r4, 0, 24, 31678  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r4679  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r5680  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r6681  ; 32BIT-NEXT:   renamable $r5 = SRAWI renamable $r3, 31, implicit-def dead $carry682  ; 32BIT-NEXT:   renamable $r4 = ADDC killed renamable $r3, killed renamable $r8, implicit-def $carry683  ; 32BIT-NEXT:   renamable $r3 = ADDE killed renamable $r5, killed renamable $r7, implicit-def dead $carry, implicit killed $carry684  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3, implicit $r4685  ;686  ; 64BIT-LABEL: name: callee_mixed_ints687  ; 64BIT: bb.0.entry:688  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x6, $x7689  ; 64BIT-NEXT: {{  $}}690  ; 64BIT-NEXT:   renamable $r4 = RLWINM renamable $r4, 0, 24, 31, implicit killed $x4691  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r3, killed renamable $r4, implicit killed $x3692  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r5, implicit killed $x5693  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r6, implicit killed $x6694  ; 64BIT-NEXT:   renamable $x3 = EXTSW_32_64 killed renamable $r3695  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x7696  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x3697entry:698  %conv = zext i8 %b to i32699  %add = add nsw i32 %a, %conv700  %add1 = add nsw i32 %add, %c701  %conv2 = sext i16 %d to i32702  %add3 = add nsw i32 %add1, %conv2703  %conv4 = sext i32 %add3 to i64704  %add5 = add nsw i64 %conv4, %e705  ret i64 %add5706  }707 708define void @call_test_vararg() {709  ; 32BIT-LABEL: name: call_test_vararg710  ; 32BIT: bb.0.entry:711  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)712  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)713  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d1, $r2 :: (load (s32) from got)714  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)715  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, %stack.1 :: (load (s32) from %stack.1, align 8)716  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d1)717  ; 32BIT-NEXT:   renamable $r5 = LWZ 4, %stack.1 :: (load (s32) from %stack.1 + 4)718  ; 32BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)719  ; 32BIT-NEXT:   renamable $r6 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)720  ; 32BIT-NEXT:   renamable $r7 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)721  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1722  ; 32BIT-NEXT:   $r3 = LI 42723  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_vararg[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $f1, implicit $r4, implicit $r5, implicit $f2, implicit $r6, implicit $r7, implicit $r2, implicit-def $r1724  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1725  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm726  ;727  ; 64BIT-LABEL: name: call_test_vararg728  ; 64BIT: bb.0.entry:729  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)730  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)731  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d1, $x2 :: (load (s64) from got)732  ; 64BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)733  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d1)734  ; 64BIT-NEXT:   renamable $x4 = LD 0, %stack.1 :: (load (s64) from %stack.1)735  ; 64BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)736  ; 64BIT-NEXT:   renamable $x5 = LD 0, %stack.0 :: (load (s64) from %stack.0)737  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1738  ; 64BIT-NEXT:   $x3 = LI8 42739  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_vararg[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $f1, implicit $x4, implicit $f2, implicit $x5, implicit $x2, implicit-def $r1740  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1741  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm742entry:743  %0 = load float, ptr @f1, align 4744  %conv = fpext float %0 to double745  %1 = load double, ptr @d1, align 8746  call void (i32, ...) @test_vararg(i32 42, double %conv, double %1)747  ret void748}749 750declare void @test_vararg(i32, ...)751 752define void @call_test_vararg2() {753  ; 32BIT-LABEL: name: call_test_vararg2754  ; 32BIT: bb.0.entry:755  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)756  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)757  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d1, $r2 :: (load (s32) from got)758  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)759  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, %stack.1 :: (load (s32) from %stack.1, align 8)760  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d1)761  ; 32BIT-NEXT:   renamable $r5 = LWZ 4, %stack.1 :: (load (s32) from %stack.1 + 4)762  ; 32BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)763  ; 32BIT-NEXT:   renamable $r7 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)764  ; 32BIT-NEXT:   renamable $r8 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)765  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1766  ; 32BIT-NEXT:   $r3 = LI 42767  ; 32BIT-NEXT:   $r6 = LI 42768  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_vararg[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $f1, implicit $r4, implicit $r5, implicit killed $r6, implicit $f2, implicit $r7, implicit $r8, implicit $r2, implicit-def $r1769  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1770  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm771  ;772  ; 64BIT-LABEL: name: call_test_vararg2773  ; 64BIT: bb.0.entry:774  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)775  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)776  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d1, $x2 :: (load (s64) from got)777  ; 64BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)778  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d1)779  ; 64BIT-NEXT:   renamable $x4 = LD 0, %stack.1 :: (load (s64) from %stack.1)780  ; 64BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)781  ; 64BIT-NEXT:   renamable $x6 = LD 0, %stack.0 :: (load (s64) from %stack.0)782  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1783  ; 64BIT-NEXT:   $x3 = LI8 42784  ; 64BIT-NEXT:   $x5 = LI8 42785  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_vararg[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $f1, implicit $x4, implicit killed $x5, implicit $f2, implicit $x6, implicit $x2, implicit-def $r1786  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1787  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm788entry:789  %0 = load float, ptr @f1, align 4790  %conv = fpext float %0 to double791  %1 = load double, ptr @d1, align 8792  call void (i32, ...) @test_vararg(i32 42, double %conv, i32 42, double %1)793  ret void794}795 796define void @call_test_vararg3() {797  ; 32BIT-LABEL: name: call_test_vararg3798  ; 32BIT: bb.0.entry:799  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)800  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)801  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d1, $r2 :: (load (s32) from got)802  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)803  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, %stack.1 :: (load (s32) from %stack.1, align 8)804  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d1)805  ; 32BIT-NEXT:   renamable $r5 = LWZ 4, %stack.1 :: (load (s32) from %stack.1 + 4)806  ; 32BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)807  ; 32BIT-NEXT:   renamable $r8 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)808  ; 32BIT-NEXT:   renamable $r9 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)809  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1810  ; 32BIT-NEXT:   $r3 = LI 42811  ; 32BIT-NEXT:   $r6 = LI 0812  ; 32BIT-NEXT:   $r7 = LI 42813  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_vararg[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $f1, implicit $r4, implicit $r5, implicit killed $r6, implicit killed $r7, implicit $f2, implicit $r8, implicit $r9, implicit $r2, implicit-def $r1814  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1815  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm816  ;817  ; 64BIT-LABEL: name: call_test_vararg3818  ; 64BIT: bb.0.entry:819  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)820  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)821  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d1, $x2 :: (load (s64) from got)822  ; 64BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)823  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d1)824  ; 64BIT-NEXT:   renamable $x4 = LD 0, %stack.1 :: (load (s64) from %stack.1)825  ; 64BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)826  ; 64BIT-NEXT:   renamable $x6 = LD 0, %stack.0 :: (load (s64) from %stack.0)827  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1828  ; 64BIT-NEXT:   $x3 = LI8 42829  ; 64BIT-NEXT:   $x5 = LI8 42830  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_vararg[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $f1, implicit $x4, implicit killed $x5, implicit $f2, implicit $x6, implicit $x2, implicit-def $r1831  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1832  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm833entry:834  %0 = load float, ptr @f1, align 4835  %conv = fpext float %0 to double836  %1 = load double, ptr @d1, align 8837  call void (i32, ...) @test_vararg(i32 42, double %conv, i64 42, double %1)838  ret void839}840 841define void @call_test_vararg4() {842  ; 32BIT-LABEL: name: call_test_vararg4843  ; 32BIT: bb.0.entry:844  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f1, $r2 :: (load (s32) from got)845  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f1)846  ; 32BIT-NEXT:   STFS renamable $f1, 0, %stack.0 :: (store (s32) into %stack.0)847  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, %stack.0 :: (load (s32) from %stack.0)848  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r1849  ; 32BIT-NEXT:   $r3 = LI 42850  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_vararg[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $f1, implicit $r4, implicit $r2, implicit-def $r1851  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r1852  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm853  ;854  ; 64BIT-LABEL: name: call_test_vararg4855  ; 64BIT: bb.0.entry:856  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f1, $x2 :: (load (s64) from got)857  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f1)858  ; 64BIT-NEXT:   STFS renamable $f1, 0, %stack.0 :: (store (s32) into %stack.0)859  ; 64BIT-NEXT:   renamable $x4 = LWZ8 0, %stack.0 :: (load (s32) from %stack.0)860  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r1861  ; 64BIT-NEXT:   $x3 = LI8 42862  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_vararg[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $f1, implicit $x4, implicit $x2, implicit-def $r1863  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r1864  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm865entry:866  %0 = load float, ptr @f1, align 4867  call void (i32, ...) @test_vararg(i32 42, float %0)868  ret void869}870 871@c = common global i8 0, align 1872@si = common global i16 0, align 2873@i = common global i32 0, align 4874@lli = common global i64 0, align 8875@f = common global float 0.000000e+00, align 4876@d = common global double 0.000000e+00, align 8877 878; Basic saving of integral type arguments to the parameter save area.879define void @call_test_stackarg_int() {880  ; 32BIT-LABEL: name: call_test_stackarg_int881  ; 32BIT: bb.0.entry:882  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @c, $r2 :: (load (s32) from got)883  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @si, $r2 :: (load (s32) from got)884  ; 32BIT-NEXT:   renamable $r5 = LWZtoc @i, $r2 :: (load (s32) from got)885  ; 32BIT-NEXT:   renamable $r11 = LBZ 0, killed renamable $r3 :: (dereferenceable load (s8) from @c)886  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @lli, $r2 :: (load (s32) from got)887  ; 32BIT-NEXT:   renamable $r4 = LHA 0, killed renamable $r4 :: (dereferenceable load (s16) from @si)888  ; 32BIT-NEXT:   renamable $r5 = LWZ 0, killed renamable $r5 :: (dereferenceable load (s32) from @i)889  ; 32BIT-NEXT:   renamable $r6 = LWZ 0, renamable $r3 :: (dereferenceable load (s32) from @lli, align 8)890  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, killed renamable $r3 :: (dereferenceable load (s32) from @lli + 4, basealign 8)891  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 80, 0, implicit-def dead $r1, implicit $r1892  ; 32BIT-NEXT:   STW renamable $r5, 76, $r1 :: (store (s32) into stack + 76, basealign 16)893  ; 32BIT-NEXT:   STW killed renamable $r3, 72, $r1 :: (store (s32) into stack + 72, align 8, basealign 16)894  ; 32BIT-NEXT:   STW killed renamable $r6, 68, $r1 :: (store (s32) into stack + 68, basealign 16)895  ; 32BIT-NEXT:   STW killed renamable $r5, 64, $r1 :: (store (s32) into stack + 64, align 16)896  ; 32BIT-NEXT:   STW killed renamable $r4, 60, $r1 :: (store (s32) into stack + 60, basealign 16)897  ; 32BIT-NEXT:   $r3 = LI 1898  ; 32BIT-NEXT:   $r4 = LI 2899  ; 32BIT-NEXT:   $r5 = LI 3900  ; 32BIT-NEXT:   $r6 = LI 4901  ; 32BIT-NEXT:   $r7 = LI 5902  ; 32BIT-NEXT:   $r8 = LI 6903  ; 32BIT-NEXT:   $r9 = LI 7904  ; 32BIT-NEXT:   $r10 = LI 8905  ; 32BIT-NEXT:   STW killed renamable $r11, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)906  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_stackarg_int[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $r2, implicit-def $r1907  ; 32BIT-NEXT:   ADJCALLSTACKUP 80, 0, implicit-def dead $r1, implicit $r1908  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm909  ;910  ; 64BIT-LABEL: name: call_test_stackarg_int911  ; 64BIT: bb.0.entry:912  ; 64BIT-NEXT:   renamable $x3 = LDtoc @c, $x2 :: (load (s64) from got)913  ; 64BIT-NEXT:   renamable $x4 = LDtoc @si, $x2 :: (load (s64) from got)914  ; 64BIT-NEXT:   renamable $x5 = LDtoc @i, $x2 :: (load (s64) from got)915  ; 64BIT-NEXT:   renamable $x6 = LDtoc @lli, $x2 :: (load (s64) from got)916  ; 64BIT-NEXT:   renamable $x11 = LBZ8 0, killed renamable $x3 :: (dereferenceable load (s8) from @c)917  ; 64BIT-NEXT:   renamable $x12 = LHA8 0, killed renamable $x4 :: (dereferenceable load (s16) from @si)918  ; 64BIT-NEXT:   renamable $x0 = LWZ8 0, killed renamable $x5 :: (dereferenceable load (s32) from @i)919  ; 64BIT-NEXT:   renamable $x31 = LD 0, killed renamable $x6 :: (dereferenceable load (s64) from @lli)920  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 152, 0, implicit-def dead $r1, implicit $r1921  ; 64BIT-NEXT:   $x3 = LI8 1922  ; 64BIT-NEXT:   $x4 = LI8 2923  ; 64BIT-NEXT:   $x5 = LI8 3924  ; 64BIT-NEXT:   $x6 = LI8 4925  ; 64BIT-NEXT:   $x7 = LI8 5926  ; 64BIT-NEXT:   $x8 = LI8 6927  ; 64BIT-NEXT:   $x9 = LI8 7928  ; 64BIT-NEXT:   $x10 = LI8 8929  ; 64BIT-NEXT:   STD killed renamable $x31, 136, $x1 :: (store (s64) into stack + 136, basealign 16)930  ; 64BIT-NEXT:   STD renamable $x0, 144, $x1 :: (store (s64) into stack + 144, align 16)931  ; 64BIT-NEXT:   STD killed renamable $x0, 128, $x1 :: (store (s64) into stack + 128, align 16)932  ; 64BIT-NEXT:   STD killed renamable $x12, 120, $x1 :: (store (s64) into stack + 120, basealign 16)933  ; 64BIT-NEXT:   STD killed renamable $x11, 112, $x1 :: (store (s64) into stack + 112, align 16)934  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_stackarg_int[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x4, implicit $x5, implicit $x6, implicit $x7, implicit $x8, implicit $x9, implicit $x10, implicit $x2, implicit-def $r1935  ; 64BIT-NEXT:   ADJCALLSTACKUP 152, 0, implicit-def dead $r1, implicit $r1936  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm937entry:938  %0 = load i8, ptr @c, align 1939  %1 = load i16, ptr @si, align 2940  %2 = load i32, ptr @i, align 4941  %3 = load i64, ptr @lli, align 8942  %4 = load i32, ptr @i, align 4943  call void @test_stackarg_int(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i8 zeroext %0, i16 signext %1, i32 %2, i64 %3, i32 %4)944  ret void945}946 947declare void @test_stackarg_int(i32, i32, i32, i32, i32, i32, i32, i32, i8 zeroext, i16 signext, i32, i64, i32)948 949; Basic saving of floating point type arguments to the parameter save area.950; The float and double arguments will pass in both fpr as well as parameter save area.951define void @call_test_stackarg_float() {952  ; 32BIT-LABEL: name: call_test_stackarg_float953  ; 32BIT: bb.0.entry:954  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f, $r2 :: (load (s32) from got)955  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @d, $r2 :: (load (s32) from got)956  ; 32BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f)957  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r4 :: (dereferenceable load (s64) from @d)958  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 68, 0, implicit-def dead $r1, implicit $r1959  ; 32BIT-NEXT:   STFD renamable $f2, 0, %stack.0 :: (store (s64) into %stack.0)960  ; 32BIT-NEXT:   STFS renamable $f1, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)961  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)962  ; 32BIT-NEXT:   STW killed renamable $r3, 64, $r1 :: (store (s32) into stack + 64, align 16)963  ; 32BIT-NEXT:   renamable $r11 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)964  ; 32BIT-NEXT:   $r3 = LI 1965  ; 32BIT-NEXT:   $r4 = LI 2966  ; 32BIT-NEXT:   $r5 = LI 3967  ; 32BIT-NEXT:   $r6 = LI 4968  ; 32BIT-NEXT:   $r7 = LI 5969  ; 32BIT-NEXT:   $r8 = LI 6970  ; 32BIT-NEXT:   $r9 = LI 7971  ; 32BIT-NEXT:   $r10 = LI 8972  ; 32BIT-NEXT:   STW killed renamable $r11, 60, $r1 :: (store (s32) into stack + 60, basealign 16)973  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_stackarg_float[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $f1, implicit $f2, implicit $r2, implicit-def $r1974  ; 32BIT-NEXT:   ADJCALLSTACKUP 68, 0, implicit-def dead $r1, implicit $r1975  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm976  ;977  ; 64BIT-LABEL: name: call_test_stackarg_float978  ; 64BIT: bb.0.entry:979  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f, $x2 :: (load (s64) from got)980  ; 64BIT-NEXT:   renamable $x4 = LDtoc @d, $x2 :: (load (s64) from got)981  ; 64BIT-NEXT:   renamable $f1 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f)982  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x4 :: (dereferenceable load (s64) from @d)983  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 128, 0, implicit-def dead $r1, implicit $r1984  ; 64BIT-NEXT:   STFD renamable $f2, 120, $x1 :: (store (s64) into stack + 120, basealign 16)985  ; 64BIT-NEXT:   $x3 = LI8 1986  ; 64BIT-NEXT:   $x4 = LI8 2987  ; 64BIT-NEXT:   $x5 = LI8 3988  ; 64BIT-NEXT:   $x6 = LI8 4989  ; 64BIT-NEXT:   $x7 = LI8 5990  ; 64BIT-NEXT:   $x8 = LI8 6991  ; 64BIT-NEXT:   $x9 = LI8 7992  ; 64BIT-NEXT:   $x10 = LI8 8993  ; 64BIT-NEXT:   STFS renamable $f1, 112, $x1 :: (store (s32) into stack + 112, align 16)994  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_stackarg_float[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x4, implicit killed $x5, implicit killed $x6, implicit killed $x7, implicit killed $x8, implicit killed $x9, implicit killed $x10, implicit $f1, implicit $f2, implicit $x2, implicit-def $r1995  ; 64BIT-NEXT:   ADJCALLSTACKUP 128, 0, implicit-def dead $r1, implicit $r1996  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm997entry:998  %0 = load float, ptr @f, align 4999  %1 = load double, ptr @d, align 81000  call void @test_stackarg_float(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, float %0, double %1)1001  ret void1002}1003 1004declare void @test_stackarg_float(i32, i32, i32, i32, i32, i32, i32, i32, float, double)1005 1006define void @call_test_stackarg_float2() {1007  ; 32BIT-LABEL: name: call_test_stackarg_float21008  ; 32BIT: bb.0.entry:1009  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d, $r2 :: (load (s32) from got)1010  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d)1011  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.0 :: (store (s64) into %stack.0)1012  ; 32BIT-NEXT:   renamable $r9 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)1013  ; 32BIT-NEXT:   renamable $r10 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)1014  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 56, 0, implicit-def dead $r1, implicit $r11015  ; 32BIT-NEXT:   $r3 = LI 11016  ; 32BIT-NEXT:   $r4 = LI 21017  ; 32BIT-NEXT:   $r5 = LI 31018  ; 32BIT-NEXT:   $r6 = LI 41019  ; 32BIT-NEXT:   $r7 = LI 51020  ; 32BIT-NEXT:   $r8 = LI 61021  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_stackarg_float2[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit killed $r4, implicit killed $r5, implicit killed $r6, implicit killed $r7, implicit killed $r8, implicit $f1, implicit $r9, implicit $r10, implicit $r2, implicit-def $r11022  ; 32BIT-NEXT:   ADJCALLSTACKUP 56, 0, implicit-def dead $r1, implicit $r11023  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1024  ;1025  ; 64BIT-LABEL: name: call_test_stackarg_float21026  ; 64BIT: bb.0.entry:1027  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d, $x2 :: (load (s64) from got)1028  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d)1029  ; 64BIT-NEXT:   STFD renamable $f1, 0, %stack.0 :: (store (s64) into %stack.0)1030  ; 64BIT-NEXT:   renamable $x9 = LD 0, %stack.0 :: (load (s64) from %stack.0)1031  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 112, 0, implicit-def dead $r1, implicit $r11032  ; 64BIT-NEXT:   $x3 = LI8 11033  ; 64BIT-NEXT:   $x4 = LI8 21034  ; 64BIT-NEXT:   $x5 = LI8 31035  ; 64BIT-NEXT:   $x6 = LI8 41036  ; 64BIT-NEXT:   $x7 = LI8 51037  ; 64BIT-NEXT:   $x8 = LI8 61038  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_stackarg_float2[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit killed $x4, implicit killed $x5, implicit killed $x6, implicit killed $x7, implicit killed $x8, implicit $f1, implicit $x9, implicit $x2, implicit-def $r11039  ; 64BIT-NEXT:   ADJCALLSTACKUP 112, 0, implicit-def dead $r1, implicit $r11040  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1041entry:1042  %0 = load double, ptr @d, align 81043  call void (i32, i32, i32, i32, i32, i32, ...) @test_stackarg_float2(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, double %0)1044  ret void1045}1046 1047declare void @test_stackarg_float2(i32, i32, i32, i32, i32, i32, ...)1048 1049; A double arg will pass on the stack in PPC32 if there is only one available GPR.1050define void @call_test_stackarg_float3() {1051  ; 32BIT-LABEL: name: call_test_stackarg_float31052  ; 32BIT: bb.0.entry:1053  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d, $r2 :: (load (s32) from got)1054  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d)1055  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f, $r2 :: (load (s32) from got)1056  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.0 :: (store (s64) into %stack.0)1057  ; 32BIT-NEXT:   renamable $r10 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)1058  ; 32BIT-NEXT:   renamable $f2 = LFS 0, killed renamable $r3 :: (dereferenceable load (s32) from @f)1059  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 64, 0, implicit-def dead $r1, implicit $r11060  ; 32BIT-NEXT:   STFD renamable $f1, 0, %stack.1 :: (store (s64) into %stack.1)1061  ; 32BIT-NEXT:   STFS renamable $f2, 60, $r1 :: (store (s32) into stack + 60, basealign 16)1062  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, %stack.1 :: (load (s32) from %stack.1 + 4)1063  ; 32BIT-NEXT:   STW killed renamable $r3, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1064  ; 32BIT-NEXT:   renamable $r11 = LWZ 0, %stack.1 :: (load (s32) from %stack.1, align 8)1065  ; 32BIT-NEXT:   $r3 = LI 11066  ; 32BIT-NEXT:   $r4 = LI 21067  ; 32BIT-NEXT:   $r5 = LI 31068  ; 32BIT-NEXT:   $r6 = LI 41069  ; 32BIT-NEXT:   $r7 = LI 51070  ; 32BIT-NEXT:   $r8 = LI 61071  ; 32BIT-NEXT:   $r9 = LI 71072  ; 32BIT-NEXT:   STW killed renamable $r11, 52, $r1 :: (store (s32) into stack + 52, basealign 16)1073  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_stackarg_float3[PR]>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $f1, implicit $r10, implicit $f2, implicit $r2, implicit-def $r11074  ; 32BIT-NEXT:   ADJCALLSTACKUP 64, 0, implicit-def dead $r1, implicit $r11075  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1076  ;1077  ; 64BIT-LABEL: name: call_test_stackarg_float31078  ; 64BIT: bb.0.entry:1079  ; 64BIT-NEXT:   renamable $x3 = LDtoc @d, $x2 :: (load (s64) from got)1080  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x3 :: (dereferenceable load (s64) from @d)1081  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f, $x2 :: (load (s64) from got)1082  ; 64BIT-NEXT:   STFD renamable $f1, 0, %stack.0 :: (store (s64) into %stack.0)1083  ; 64BIT-NEXT:   renamable $x10 = LD 0, %stack.0 :: (load (s64) from %stack.0)1084  ; 64BIT-NEXT:   renamable $f2 = LFS 0, killed renamable $x3 :: (dereferenceable load (s32) from @f)1085  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 120, 0, implicit-def dead $r1, implicit $r11086  ; 64BIT-NEXT:   $x3 = LI8 11087  ; 64BIT-NEXT:   $x4 = LI8 21088  ; 64BIT-NEXT:   $x5 = LI8 31089  ; 64BIT-NEXT:   $x6 = LI8 41090  ; 64BIT-NEXT:   $x7 = LI8 51091  ; 64BIT-NEXT:   $x8 = LI8 61092  ; 64BIT-NEXT:   $x9 = LI8 71093  ; 64BIT-NEXT:   STFS renamable $f2, 112, $x1 :: (store (s32) into stack + 112, align 16)1094  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_stackarg_float3[PR]>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit killed $x4, implicit killed $x5, implicit killed $x6, implicit killed $x7, implicit killed $x8, implicit killed $x9, implicit $f1, implicit $x10, implicit $f2, implicit $x2, implicit-def $r11095  ; 64BIT-NEXT:   ADJCALLSTACKUP 120, 0, implicit-def dead $r1, implicit $r11096  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1097entry:1098  %0 = load double, ptr @d, align 81099  %1 = load float, ptr @f, align 41100  call void (i32, i32, i32, i32, i32, i32, i32, ...) @test_stackarg_float3(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, double %0, float %1)1101  ret void1102}1103 1104declare void @test_stackarg_float3(i32, i32, i32, i32, i32, i32, i32, ...)1105 1106define i64 @test_ints_stack(i32 %i1, i32 %i2, i32 %i3, i32 %i4, i32 %i5, i32 %i6, i32 %i7, i32 %i8, i64 %ll9, i16 signext %s10, i8 zeroext %c11, i32 %ui12, i32 %si13, i64 %ll14, i8 zeroext %uc15, i32 %i16) {1107  ; 32BIT-LABEL: name: test_ints_stack1108  ; 32BIT: bb.0.entry:1109  ; 32BIT-NEXT:   liveins: $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r101110  ; 32BIT-NEXT: {{  $}}1111  ; 32BIT-NEXT:   renamable $r11 = LWZ 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0)1112  ; 32BIT-NEXT:   renamable $r12 = LWZ 0, %fixed-stack.4 :: (load (s32) from %fixed-stack.4)1113  ; 32BIT-NEXT:   renamable $r0 = LBZ 3, %fixed-stack.1 :: (load (s8) from %fixed-stack.1 + 3, basealign 4)1114  ; 32BIT-NEXT:   renamable $r31 = LWZ 0, %fixed-stack.3 :: (load (s32) from %fixed-stack.3, align 16)1115  ; 32BIT-NEXT:   renamable $r30 = LWZ 4, %fixed-stack.3 :: (load (s32) from %fixed-stack.3 + 4, basealign 16)1116  ; 32BIT-NEXT:   renamable $r29 = LWZ 0, %fixed-stack.5 :: (load (s32) from %fixed-stack.5, align 8)1117  ; 32BIT-NEXT:   renamable $r28 = LBZ 3, %fixed-stack.6 :: (load (s8) from %fixed-stack.6 + 3, basealign 4)1118  ; 32BIT-NEXT:   renamable $r27 = LHA 2, %fixed-stack.7 :: (load (s16) from %fixed-stack.7 + 2, basealign 4)1119  ; 32BIT-NEXT:   renamable $r26 = LWZ 0, %fixed-stack.9 :: (load (s32) from %fixed-stack.9, align 8)1120  ; 32BIT-NEXT:   renamable $r25 = LWZ 4, %fixed-stack.9 :: (load (s32) from %fixed-stack.9 + 4, basealign 8)1121  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r41122  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r51123  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r61124  ; 32BIT-NEXT:   renamable $r5 = SRAWI renamable $r11, 31, implicit-def dead $carry1125  ; 32BIT-NEXT:   renamable $r4 = SRAWI renamable $r12, 31, implicit-def dead $carry1126  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r71127  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r81128  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r91129  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r101130  ; 32BIT-NEXT:   renamable $r6 = SRAWI renamable $r3, 31, implicit-def dead $carry1131  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r25, implicit-def $carry1132  ; 32BIT-NEXT:   renamable $r6 = ADDE killed renamable $r6, killed renamable $r26, implicit-def dead $carry, implicit $carry1133  ; 32BIT-NEXT:   renamable $r7 = SRAWI renamable $r27, 31, implicit-def dead $carry1134  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r27, implicit-def $carry1135  ; 32BIT-NEXT:   renamable $r6 = ADDE killed renamable $r6, killed renamable $r7, implicit-def dead $carry, implicit $carry1136  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r28, implicit-def $carry1137  ; 32BIT-NEXT:   renamable $r6 = ADDZE killed renamable $r6, implicit-def dead $carry, implicit $carry1138  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r29, implicit-def $carry1139  ; 32BIT-NEXT:   renamable $r6 = ADDZE killed renamable $r6, implicit-def dead $carry, implicit $carry1140  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r12, implicit-def $carry1141  ; 32BIT-NEXT:   renamable $r4 = ADDE killed renamable $r6, killed renamable $r4, implicit-def dead $carry, implicit $carry1142  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r30, implicit-def $carry1143  ; 32BIT-NEXT:   renamable $r4 = ADDE killed renamable $r4, killed renamable $r31, implicit-def dead $carry, implicit $carry1144  ; 32BIT-NEXT:   renamable $r3 = ADDC killed renamable $r3, killed renamable $r0, implicit-def $carry1145  ; 32BIT-NEXT:   renamable $r6 = ADDZE killed renamable $r4, implicit-def dead $carry, implicit $carry1146  ; 32BIT-NEXT:   renamable $r4 = ADDC killed renamable $r3, killed renamable $r11, implicit-def $carry1147  ; 32BIT-NEXT:   renamable $r3 = ADDE killed renamable $r6, killed renamable $r5, implicit-def dead $carry, implicit $carry1148  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r3, implicit $r41149  ;1150  ; 64BIT-LABEL: name: test_ints_stack1151  ; 64BIT: bb.0.entry:1152  ; 64BIT-NEXT:   liveins: $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x101153  ; 64BIT-NEXT: {{  $}}1154  ; 64BIT-NEXT:   renamable $r11 = LBZ 3, %fixed-stack.1, implicit-def $x11 :: (load (s8) from %fixed-stack.1 + 3, basealign 4)1155  ; 64BIT-NEXT:   renamable $x12 = LWZ8 0, %fixed-stack.4 :: (load (s32) from %fixed-stack.4)1156  ; 64BIT-NEXT:   renamable $r0 = LBZ 3, %fixed-stack.5, implicit-def $x0 :: (load (s8) from %fixed-stack.5 + 3, basealign 4)1157  ; 64BIT-NEXT:   renamable $x2 = LWA 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0)1158  ; 64BIT-NEXT:   renamable $x31 = LD 0, %fixed-stack.2 :: (load (s64) from %fixed-stack.2)1159  ; 64BIT-NEXT:   renamable $x30 = LWA 0, %fixed-stack.3 :: (load (s32) from %fixed-stack.3)1160  ; 64BIT-NEXT:   renamable $x29 = LHA8 2, %fixed-stack.61161  ; 64BIT-NEXT:   renamable $x28 = LD 0, %fixed-stack.7 :: (load (s64) from %fixed-stack.7, align 16)1162  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r3, renamable $r4, implicit killed $x4, implicit killed $x31163  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r5, implicit killed $x51164  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r6, implicit killed $x61165  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r7, implicit killed $x71166  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r8, implicit killed $x81167  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r9, implicit killed $x91168  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r10, implicit killed $x101169  ; 64BIT-NEXT:   renamable $x3 = EXTSW_32_64 killed renamable $r31170  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x281171  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x291172  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x01173  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x121174  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x301175  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x311176  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x111177  ; 64BIT-NEXT:   renamable $x3 = nsw ADD8 killed renamable $x3, killed renamable $x21178  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x31179entry:1180  %add = add nsw i32 %i1, %i21181  %add1 = add nsw i32 %add, %i31182  %add2 = add nsw i32 %add1, %i41183  %add3 = add nsw i32 %add2, %i51184  %add4 = add nsw i32 %add3, %i61185  %add5 = add nsw i32 %add4, %i71186  %add6 = add nsw i32 %add5, %i81187  %conv = sext i32 %add6 to i641188  %add7 = add nsw i64 %conv, %ll91189  %conv8 = sext i16 %s10 to i641190  %add9 = add nsw i64 %add7, %conv81191  %conv10 = zext i8 %c11 to i641192  %add11 = add nsw i64 %add9, %conv101193  %conv12 = zext i32 %ui12 to i641194  %add13 = add nsw i64 %add11, %conv121195  %conv14 = sext i32 %si13 to i641196  %add15 = add nsw i64 %add13, %conv141197  %add16 = add nsw i64 %add15, %ll141198  %conv17 = zext i8 %uc15 to i641199  %add18 = add nsw i64 %add16, %conv171200  %conv19 = sext i32 %i16 to i641201  %add20 = add nsw i64 %add18, %conv191202  ret i64 %add201203}1204 1205@ll1 = common global i64 0, align 81206@si1 = common global i16 0, align 21207@ch = common global i8 0, align 11208@ui = common global i32 0, align 41209@sint = common global i32 0, align 41210@ll2 = common global i64 0, align 81211@uc1 = common global i8 0, align 11212@i1 = common global i32 0, align 41213 1214define void @caller_ints_stack() {1215  ; 32BIT-LABEL: name: caller_ints_stack1216  ; 32BIT: bb.0.entry:1217  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @ll1, $r2 :: (load (s32) from got)1218  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @si1, $r2 :: (load (s32) from got)1219  ; 32BIT-NEXT:   renamable $r11 = LWZ 0, renamable $r3 :: (dereferenceable load (s32) from @ll1, align 8)1220  ; 32BIT-NEXT:   renamable $r5 = LWZtoc @ch, $r2 :: (load (s32) from got)1221  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, killed renamable $r3 :: (dereferenceable load (s32) from @ll1 + 4, basealign 8)1222  ; 32BIT-NEXT:   renamable $r6 = LWZtoc @ui, $r2 :: (load (s32) from got)1223  ; 32BIT-NEXT:   renamable $r4 = LHA 0, killed renamable $r4 :: (dereferenceable load (s16) from @si1)1224  ; 32BIT-NEXT:   renamable $r7 = LWZtoc @sint, $r2 :: (load (s32) from got)1225  ; 32BIT-NEXT:   renamable $r5 = LBZ 0, killed renamable $r5 :: (dereferenceable load (s8) from @ch)1226  ; 32BIT-NEXT:   renamable $r8 = LWZtoc @ll2, $r2 :: (load (s32) from got)1227  ; 32BIT-NEXT:   renamable $r6 = LWZ 0, killed renamable $r6 :: (dereferenceable load (s32) from @ui)1228  ; 32BIT-NEXT:   renamable $r7 = LWZ 0, killed renamable $r7 :: (dereferenceable load (s32) from @sint)1229  ; 32BIT-NEXT:   renamable $r9 = LWZtoc @uc1, $r2 :: (load (s32) from got)1230  ; 32BIT-NEXT:   renamable $r10 = LWZ 0, renamable $r8 :: (dereferenceable load (s32) from @ll2, align 8)1231  ; 32BIT-NEXT:   renamable $r12 = LWZtoc @i1, $r2 :: (load (s32) from got)1232  ; 32BIT-NEXT:   renamable $r8 = LWZ 4, killed renamable $r8 :: (dereferenceable load (s32) from @ll2 + 4, basealign 8)1233  ; 32BIT-NEXT:   renamable $r9 = LBZ 0, killed renamable $r9 :: (dereferenceable load (s8) from @uc1)1234  ; 32BIT-NEXT:   renamable $r12 = LWZ 0, killed renamable $r12 :: (dereferenceable load (s32) from @i1)1235  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 96, 0, implicit-def dead $r1, implicit $r11236  ; 32BIT-NEXT:   STW killed renamable $r12, 92, $r1 :: (store (s32) into stack + 92, basealign 16)1237  ; 32BIT-NEXT:   STW killed renamable $r9, 88, $r1 :: (store (s32) into stack + 88, align 8, basealign 16)1238  ; 32BIT-NEXT:   STW killed renamable $r8, 84, $r1 :: (store (s32) into stack + 84, basealign 16)1239  ; 32BIT-NEXT:   STW killed renamable $r10, 80, $r1 :: (store (s32) into stack + 80, align 16)1240  ; 32BIT-NEXT:   STW killed renamable $r7, 76, $r1 :: (store (s32) into stack + 76, basealign 16)1241  ; 32BIT-NEXT:   STW killed renamable $r6, 72, $r1 :: (store (s32) into stack + 72, align 8, basealign 16)1242  ; 32BIT-NEXT:   STW killed renamable $r5, 68, $r1 :: (store (s32) into stack + 68, basealign 16)1243  ; 32BIT-NEXT:   STW killed renamable $r4, 64, $r1 :: (store (s32) into stack + 64, align 16)1244  ; 32BIT-NEXT:   STW killed renamable $r3, 60, $r1 :: (store (s32) into stack + 60, basealign 16)1245  ; 32BIT-NEXT:   $r3 = LI 11246  ; 32BIT-NEXT:   $r4 = LI 21247  ; 32BIT-NEXT:   $r5 = LI 31248  ; 32BIT-NEXT:   $r6 = LI 41249  ; 32BIT-NEXT:   $r7 = LI 51250  ; 32BIT-NEXT:   $r8 = LI 61251  ; 32BIT-NEXT:   $r9 = LI 71252  ; 32BIT-NEXT:   $r10 = LI 81253  ; 32BIT-NEXT:   STW killed renamable $r11, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1254  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_ints_stack>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $r2, implicit-def $r1, implicit-def dead $r3, implicit-def dead $r41255  ; 32BIT-NEXT:   ADJCALLSTACKUP 96, 0, implicit-def dead $r1, implicit $r11256  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1257  ;1258  ; 64BIT-LABEL: name: caller_ints_stack1259  ; 64BIT: bb.0.entry:1260  ; 64BIT-NEXT:   renamable $x3 = LDtoc @si1, $x2 :: (load (s64) from got)1261  ; 64BIT-NEXT:   renamable $x4 = LDtoc @ch, $x2 :: (load (s64) from got)1262  ; 64BIT-NEXT:   renamable $x5 = LDtoc @ui, $x2 :: (load (s64) from got)1263  ; 64BIT-NEXT:   renamable $x11 = LHA8 0, killed renamable $x3 :: (dereferenceable load (s16) from @si1)1264  ; 64BIT-NEXT:   renamable $x3 = LDtoc @sint, $x2 :: (load (s64) from got)1265  ; 64BIT-NEXT:   renamable $x12 = LBZ8 0, killed renamable $x4 :: (dereferenceable load (s8) from @ch)1266  ; 64BIT-NEXT:   renamable $x4 = LDtoc @uc1, $x2 :: (load (s64) from got)1267  ; 64BIT-NEXT:   renamable $x0 = LWZ8 0, killed renamable $x5 :: (dereferenceable load (s32) from @ui)1268  ; 64BIT-NEXT:   renamable $x5 = LDtoc @ll1, $x2 :: (load (s64) from got)1269  ; 64BIT-NEXT:   renamable $x6 = LDtoc @ll2, $x2 :: (load (s64) from got)1270  ; 64BIT-NEXT:   renamable $x7 = LDtoc @i1, $x2 :: (load (s64) from got)1271  ; 64BIT-NEXT:   renamable $x31 = LWZ8 0, killed renamable $x3 :: (dereferenceable load (s32) from @sint)1272  ; 64BIT-NEXT:   renamable $x30 = LBZ8 0, killed renamable $x4 :: (dereferenceable load (s8) from @uc1)1273  ; 64BIT-NEXT:   renamable $x29 = LD 0, killed renamable $x5 :: (dereferenceable load (s64) from @ll1)1274  ; 64BIT-NEXT:   renamable $x28 = LD 0, killed renamable $x6 :: (dereferenceable load (s64) from @ll2)1275  ; 64BIT-NEXT:   renamable $x27 = LWZ8 0, killed renamable $x7 :: (dereferenceable load (s32) from @i1)1276  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 176, 0, implicit-def dead $r1, implicit $r11277  ; 64BIT-NEXT:   $x3 = LI8 11278  ; 64BIT-NEXT:   $x4 = LI8 21279  ; 64BIT-NEXT:   $x5 = LI8 31280  ; 64BIT-NEXT:   $x6 = LI8 41281  ; 64BIT-NEXT:   $x7 = LI8 51282  ; 64BIT-NEXT:   $x8 = LI8 61283  ; 64BIT-NEXT:   $x9 = LI8 71284  ; 64BIT-NEXT:   $x10 = LI8 81285  ; 64BIT-NEXT:   STD killed renamable $x27, 168, $x1 :: (store (s64) into stack + 168, basealign 16)1286  ; 64BIT-NEXT:   STD killed renamable $x30, 160, $x1 :: (store (s64) into stack + 160, align 16)1287  ; 64BIT-NEXT:   STD killed renamable $x28, 152, $x1 :: (store (s64) into stack + 152, basealign 16)1288  ; 64BIT-NEXT:   STD killed renamable $x31, 144, $x1 :: (store (s64) into stack + 144, align 16)1289  ; 64BIT-NEXT:   STD killed renamable $x0, 136, $x1 :: (store (s64) into stack + 136, basealign 16)1290  ; 64BIT-NEXT:   STD killed renamable $x12, 128, $x1 :: (store (s64) into stack + 128, align 16)1291  ; 64BIT-NEXT:   STD killed renamable $x11, 120, $x1 :: (store (s64) into stack + 120, basealign 16)1292  ; 64BIT-NEXT:   STD killed renamable $x29, 112, $x1 :: (store (s64) into stack + 112, align 16)1293  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_ints_stack>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x4, implicit $x5, implicit $x6, implicit $x7, implicit $x8, implicit $x9, implicit $x10, implicit $x2, implicit-def $r1, implicit-def dead $x31294  ; 64BIT-NEXT:   ADJCALLSTACKUP 176, 0, implicit-def dead $r1, implicit $r11295  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1296entry:1297  %0 = load i64, ptr @ll1, align 81298  %1 = load i16, ptr @si1, align 21299  %2 = load i8, ptr @ch, align 11300  %3 = load i32, ptr @ui, align 41301  %4 = load i32, ptr @sint, align 41302  %5 = load i64, ptr @ll2, align 81303  %6 = load i8, ptr @uc1, align 11304  %7 = load i32, ptr @i1, align 41305  %call = call i64 @test_ints_stack(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i64 %0, i16 signext %1, i8 zeroext %2, i32 %3, i32 %4, i64 %5, i8 zeroext %6, i32 %7)1306  ret void1307}1308 1309@globali1 = global i8 0, align 11310 1311define void @test_i1_stack(i32 %a, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g, i32 %h, i32 %i, i1 zeroext %b) {1312  ; 32BIT-LABEL: name: test_i1_stack1313  ; 32BIT: bb.0.entry:1314  ; 32BIT-NEXT:   renamable $r3 = LBZ 0, %fixed-stack.0 :: (load (s8) from %fixed-stack.0)1315  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @globali1, $r2 :: (load (s32) from got)1316  ; 32BIT-NEXT:   STB killed renamable $r3, 0, killed renamable $r4 :: (store (s8) into @globali1)1317  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1318  ;1319  ; 64BIT-LABEL: name: test_i1_stack1320  ; 64BIT: bb.0.entry:1321  ; 64BIT-NEXT:   renamable $r3 = LBZ 0, %fixed-stack.0 :: (load (s8) from %fixed-stack.0)1322  ; 64BIT-NEXT:   renamable $x4 = LDtoc @globali1, $x2 :: (load (s64) from got)1323  ; 64BIT-NEXT:   STB killed renamable $r3, 0, killed renamable $x4 :: (store (s8) into @globali1)1324  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1325  entry:1326    %frombool = zext i1 %b to i81327    store i8 %frombool, ptr @globali1, align 11328    ret void1329}1330 1331define void @call_test_i1_stack() {1332  ; 32BIT-LABEL: name: call_test_i1_stack1333  ; 32BIT: bb.0.entry:1334  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 60, 0, implicit-def dead $r1, implicit $r11335  ; 32BIT-NEXT:   renamable $r11 = LI 11336  ; 32BIT-NEXT:   $r3 = LI 11337  ; 32BIT-NEXT:   $r4 = LI 21338  ; 32BIT-NEXT:   $r5 = LI 31339  ; 32BIT-NEXT:   $r6 = LI 41340  ; 32BIT-NEXT:   $r7 = LI 51341  ; 32BIT-NEXT:   $r8 = LI 61342  ; 32BIT-NEXT:   $r9 = LI 71343  ; 32BIT-NEXT:   $r10 = LI 81344  ; 32BIT-NEXT:   STW killed renamable $r11, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1345  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_i1_stack>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $r2, implicit-def $r11346  ; 32BIT-NEXT:   ADJCALLSTACKUP 60, 0, implicit-def dead $r1, implicit $r11347  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1348  ;1349  ; 64BIT-LABEL: name: call_test_i1_stack1350  ; 64BIT: bb.0.entry:1351  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 120, 0, implicit-def dead $r1, implicit $r11352  ; 64BIT-NEXT:   renamable $x11 = LI8 11353  ; 64BIT-NEXT:   $x3 = LI8 11354  ; 64BIT-NEXT:   $x4 = LI8 21355  ; 64BIT-NEXT:   $x5 = LI8 31356  ; 64BIT-NEXT:   $x6 = LI8 41357  ; 64BIT-NEXT:   $x7 = LI8 51358  ; 64BIT-NEXT:   $x8 = LI8 61359  ; 64BIT-NEXT:   $x9 = LI8 71360  ; 64BIT-NEXT:   $x10 = LI8 81361  ; 64BIT-NEXT:   STD killed renamable $x11, 112, $x1 :: (store (s64) into stack + 112, align 16)1362  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_i1_stack>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x4, implicit $x5, implicit $x6, implicit $x7, implicit $x8, implicit $x9, implicit $x10, implicit $x2, implicit-def $r11363  ; 64BIT-NEXT:   ADJCALLSTACKUP 120, 0, implicit-def dead $r1, implicit $r11364  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1365  entry:1366    call void @test_i1_stack(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i1 true)1367    ret void1368}1369 1370define double @test_fpr_stack(double %d1, double %d2, double %d3, double %d4, double %d5, double %d6, double %d7, double %d8, double %d9, double %s10, double %l11, double %d12, double %d13, float %f14, double %d15, float %f16) {1371  ; 32BIT-LABEL: name: test_fpr_stack1372  ; 32BIT: bb.0.entry:1373  ; 32BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f131374  ; 32BIT-NEXT: {{  $}}1375  ; 32BIT-NEXT:   renamable $f0 = LFD 0, %fixed-stack.1 :: (load (s64) from %fixed-stack.1)1376  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1377  ; 32BIT-NEXT:   renamable $f2 = LFS 0, %fixed-stack.2 :: (load (s32) from %fixed-stack.2, align 16)1378  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f3, implicit $rm1379  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f4, implicit $rm1380  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f5, implicit $rm1381  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f6, implicit $rm1382  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f7, implicit $rm1383  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f8, implicit $rm1384  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f9, implicit $rm1385  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f10, implicit $rm1386  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f11, implicit $rm1387  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f12, implicit $rm1388  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, renamable $f13, implicit $rm1389  ; 32BIT-NEXT:   renamable $f3 = LFS 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0)1390  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f13, implicit $rm1391  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1392  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f0, implicit $rm1393  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm1394  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $f11395  ;1396  ; 64BIT-LABEL: name: test_fpr_stack1397  ; 64BIT: bb.0.entry:1398  ; 64BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f131399  ; 64BIT-NEXT: {{  $}}1400  ; 64BIT-NEXT:   renamable $f0 = LFD 0, %fixed-stack.1 :: (load (s64) from %fixed-stack.1, align 16)1401  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1402  ; 64BIT-NEXT:   renamable $f2 = LFS 0, %fixed-stack.2 :: (load (s32) from %fixed-stack.2, align 8)1403  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f3, implicit $rm1404  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f4, implicit $rm1405  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f5, implicit $rm1406  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f6, implicit $rm1407  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f7, implicit $rm1408  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f8, implicit $rm1409  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f9, implicit $rm1410  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f10, implicit $rm1411  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f11, implicit $rm1412  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f12, implicit $rm1413  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, renamable $f13, implicit $rm1414  ; 64BIT-NEXT:   renamable $f3 = LFS 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0, align 8)1415  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f13, implicit $rm1416  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1417  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f0, implicit $rm1418  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm1419  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $f11420  entry:1421    %add = fadd double %d1, %d21422    %add1 = fadd double %add, %d31423    %add2 = fadd double %add1, %d41424    %add3 = fadd double %add2, %d51425    %add4 = fadd double %add3, %d61426    %add5 = fadd double %add4, %d71427    %add6 = fadd double %add5, %d81428    %add7 = fadd double %add6, %d91429    %add8 = fadd double %add7, %s101430    %add9 = fadd double %add8, %l111431    %add10 = fadd double %add9, %d121432    %add11 = fadd double %add10, %d131433    %add12 = fadd double %add11, %d131434    %conv = fpext float %f14 to double1435    %add13 = fadd double %add12, %conv1436    %add14 = fadd double %add13, %d151437    %conv15 = fpext float %f16 to double1438    %add16 = fadd double %add14, %conv151439    ret double %add161440  }1441 1442@f14 = common global float 0.000000e+00, align 41443@d15 = common global double 0.000000e+00, align 81444@f16 = common global float 0.000000e+00, align 41445 1446define void @caller_fpr_stack() {1447  ; 32BIT-LABEL: name: caller_fpr_stack1448  ; 32BIT: bb.0.entry:1449  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @d15, $r2 :: (load (s32) from got)1450  ; 32BIT-NEXT:   renamable $r4 = LWZtoc @f14, $r2 :: (load (s32) from got)1451  ; 32BIT-NEXT:   renamable $f0 = LFD 0, killed renamable $r3 :: (dereferenceable load (s64) from @d15)1452  ; 32BIT-NEXT:   renamable $r3 = LWZtoc @f16, $r2 :: (load (s32) from got)1453  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, killed renamable $r4 :: (dereferenceable load (s32) from @f14)1454  ; 32BIT-NEXT:   renamable $r3 = LWZ 0, killed renamable $r3 :: (dereferenceable load (s32) from @f16)1455  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 144, 0, implicit-def dead $r1, implicit $r11456  ; 32BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)1457  ; 32BIT-NEXT:   renamable $r5 = LI 01458  ; 32BIT-NEXT:   renamable $r6 = LIS 163521459  ; 32BIT-NEXT:   STW killed renamable $r3, 140, $r1 :: (store (s32) into stack + 140, basealign 16)1460  ; 32BIT-NEXT:   renamable $r3 = LIS 131071461  ; 32BIT-NEXT:   STW killed renamable $r4, 128, $r1 :: (store (s32) into stack + 128, align 16)1462  ; 32BIT-NEXT:   renamable $r4 = LIS 163551463  ; 32BIT-NEXT:   STW killed renamable $r5, 60, $r1 :: (store (s32) into stack + 60, basealign 16)1464  ; 32BIT-NEXT:   renamable $r5 = LIS 262141465  ; 32BIT-NEXT:   STW killed renamable $r6, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1466  ; 32BIT-NEXT:   renamable $r6 = LIS 163581467  ; 32BIT-NEXT:   renamable $r3 = ORI killed renamable $r3, 131071468  ; 32BIT-NEXT:   STW killed renamable $r3, 68, $r1 :: (store (s32) into stack + 68, basealign 16)1469  ; 32BIT-NEXT:   renamable $r3 = LIS 393211470  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 131071471  ; 32BIT-NEXT:   STW killed renamable $r4, 64, $r1 :: (store (s32) into stack + 64, align 16)1472  ; 32BIT-NEXT:   renamable $r4 = LIS 163611473  ; 32BIT-NEXT:   renamable $r5 = ORI killed renamable $r5, 262141474  ; 32BIT-NEXT:   STW killed renamable $r5, 76, $r1 :: (store (s32) into stack + 76, basealign 16)1475  ; 32BIT-NEXT:   renamable $r5 = LIS 524281476  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r6, 262141477  ; 32BIT-NEXT:   STW killed renamable $r6, 72, $r1 :: (store (s32) into stack + 72, align 8, basealign 16)1478  ; 32BIT-NEXT:   renamable $r6 = LIS 163641479  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 393211480  ; 32BIT-NEXT:   STW killed renamable $r4, 80, $r1 :: (store (s32) into stack + 80, align 16)1481  ; 32BIT-NEXT:   renamable $r4 = LIS 163131482  ; 32BIT-NEXT:   renamable $r5 = ORI killed renamable $r5, 524291483  ; 32BIT-NEXT:   STW killed renamable $r5, 92, $r1 :: (store (s32) into stack + 92, basealign 16)1484  ; 32BIT-NEXT:   renamable $r5 = LIS 498071485  ; 32BIT-NEXT:   renamable $r3 = ORI killed renamable $r3, 393221486  ; 32BIT-NEXT:   STW renamable $r3, 84, $r1 :: (store (s32) into stack + 84, basealign 16)1487  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r6, 524281488  ; 32BIT-NEXT:   STW killed renamable $r6, 88, $r1 :: (store (s32) into stack + 88, align 8, basealign 16)1489  ; 32BIT-NEXT:   renamable $r6 = LIS 163161490  ; 32BIT-NEXT:   STW killed renamable $r3, 100, $r1 :: (store (s32) into stack + 100, basealign 16)1491  ; 32BIT-NEXT:   renamable $r3 = LIS 602931492  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 393211493  ; 32BIT-NEXT:   STW killed renamable $r4, 96, $r1 :: (store (s32) into stack + 96, align 16)1494  ; 32BIT-NEXT:   renamable $r4 = LIS 163181495  ; 32BIT-NEXT:   renamable $r5 = ORI killed renamable $r5, 235931496  ; 32BIT-NEXT:   STW killed renamable $r5, 108, $r1 :: (store (s32) into stack + 108, basealign 16)1497  ; 32BIT-NEXT:   renamable $r5 = LIS 26211498  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r6, 104851499  ; 32BIT-NEXT:   STW killed renamable $r6, 104, $r1 :: (store (s32) into stack + 104, align 8, basealign 16)1500  ; 32BIT-NEXT:   renamable $r6 = LIS 163201501  ; 32BIT-NEXT:   renamable $r3 = ORI killed renamable $r3, 78641502  ; 32BIT-NEXT:   STW killed renamable $r3, 116, $r1 :: (store (s32) into stack + 116, basealign 16)1503  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.0, $r2 :: (load (s32) from got)1504  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 471851505  ; 32BIT-NEXT:   STW killed renamable $r4, 112, $r1 :: (store (s32) into stack + 112, align 16)1506  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r5, 288361507  ; 32BIT-NEXT:   STW killed renamable $r4, 124, $r1 :: (store (s32) into stack + 124, basealign 16)1508  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r6, 419431509  ; 32BIT-NEXT:   STW killed renamable $r4, 120, $r1 :: (store (s32) into stack + 120, align 8, basealign 16)1510  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.1, $r2 :: (load (s32) from got)1511  ; 32BIT-NEXT:   renamable $r5 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4)1512  ; 32BIT-NEXT:   renamable $r6 = LWZtoc %const.2, $r2 :: (load (s32) from got)1513  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1514  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.3, $r2 :: (load (s32) from got)1515  ; 32BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1516  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.4, $r2 :: (load (s32) from got)1517  ; 32BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $r6 :: (load (s64) from constant-pool)1518  ; 32BIT-NEXT:   renamable $r6 = LWZtoc %const.5, $r2 :: (load (s32) from got)1519  ; 32BIT-NEXT:   renamable $f6 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1520  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.6, $r2 :: (load (s32) from got)1521  ; 32BIT-NEXT:   renamable $f7 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1522  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.7, $r2 :: (load (s32) from got)1523  ; 32BIT-NEXT:   renamable $f8 = LFD 0, killed renamable $r6 :: (load (s64) from constant-pool)1524  ; 32BIT-NEXT:   renamable $r6 = LWZtoc %const.8, $r2 :: (load (s32) from got)1525  ; 32BIT-NEXT:   renamable $f9 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1526  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.9, $r2 :: (load (s32) from got)1527  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1528  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.10, $r2 :: (load (s32) from got)1529  ; 32BIT-NEXT:   renamable $f11 = LFD 0, killed renamable $r6 :: (load (s64) from constant-pool)1530  ; 32BIT-NEXT:   renamable $r6 = LWZtoc %const.11, $r2 :: (load (s32) from got)1531  ; 32BIT-NEXT:   renamable $f12 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1532  ; 32BIT-NEXT:   renamable $f13 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1533  ; 32BIT-NEXT:   renamable $f5 = LFS 0, killed renamable $r6 :: (load (s32) from constant-pool)1534  ; 32BIT-NEXT:   STW killed renamable $r5, 136, $r1 :: (store (s32) into stack + 136, align 8, basealign 16)1535  ; 32BIT-NEXT:   renamable $r3 = LWZ 0, %stack.0 :: (load (s32) from %stack.0, align 8)1536  ; 32BIT-NEXT:   $f10 = COPY renamable $f11537  ; 32BIT-NEXT:   STW killed renamable $r3, 132, $r1 :: (store (s32) into stack + 132, basealign 16)1538  ; 32BIT-NEXT:   BL_NOP <mcsymbol .test_fpr_stack>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit $f5, implicit $f6, implicit $f7, implicit $f8, implicit $f9, implicit killed $f10, implicit $f11, implicit $f12, implicit $f13, implicit $r2, implicit-def $r1, implicit-def dead $f11539  ; 32BIT-NEXT:   ADJCALLSTACKUP 144, 0, implicit-def dead $r1, implicit $r11540  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1541  ;1542  ; 64BIT-LABEL: name: caller_fpr_stack1543  ; 64BIT: bb.0.entry:1544  ; 64BIT-NEXT:   renamable $x3 = LDtoc @f14, $x2 :: (load (s64) from got)1545  ; 64BIT-NEXT:   renamable $x4 = LDtoc @d15, $x2 :: (load (s64) from got)1546  ; 64BIT-NEXT:   renamable $x5 = LDtoc @f16, $x2 :: (load (s64) from got)1547  ; 64BIT-NEXT:   renamable $r3 = LWZ 0, killed renamable $x3 :: (dereferenceable load (s32) from @f14)1548  ; 64BIT-NEXT:   renamable $x4 = LD 0, killed renamable $x4 :: (dereferenceable load (s64) from @d15)1549  ; 64BIT-NEXT:   renamable $r5 = LWZ 0, killed renamable $x5 :: (dereferenceable load (s32) from @f16)1550  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 176, 0, implicit-def dead $r1, implicit $r11551  ; 64BIT-NEXT:   renamable $x6 = LDtocCPT %const.0, $x2 :: (load (s64) from got)1552  ; 64BIT-NEXT:   STW killed renamable $r5, 168, $x1 :: (store (s32) into stack + 168, align 8, basealign 16)1553  ; 64BIT-NEXT:   renamable $x5 = LDtocCPT %const.1, $x2 :: (load (s64) from got)1554  ; 64BIT-NEXT:   renamable $x7 = LDtocCPT %const.2, $x2 :: (load (s64) from got)1555  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x6 :: (load (s64) from constant-pool)1556  ; 64BIT-NEXT:   renamable $x6 = LDtocCPT %const.3, $x2 :: (load (s64) from got)1557  ; 64BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $x5 :: (load (s64) from constant-pool)1558  ; 64BIT-NEXT:   renamable $x5 = LDtocCPT %const.4, $x2 :: (load (s64) from got)1559  ; 64BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $x7 :: (load (s64) from constant-pool)1560  ; 64BIT-NEXT:   renamable $x7 = LDtocCPT %const.5, $x2 :: (load (s64) from got)1561  ; 64BIT-NEXT:   renamable $f6 = LFD 0, killed renamable $x6 :: (load (s64) from constant-pool)1562  ; 64BIT-NEXT:   renamable $x6 = LDtocCPT %const.6, $x2 :: (load (s64) from got)1563  ; 64BIT-NEXT:   renamable $f7 = LFD 0, killed renamable $x5 :: (load (s64) from constant-pool)1564  ; 64BIT-NEXT:   STD killed renamable $x4, 160, $x1 :: (store (s64) into stack + 160, align 16)1565  ; 64BIT-NEXT:   renamable $x4 = LDtocCPT %const.7, $x2 :: (load (s64) from got)1566  ; 64BIT-NEXT:   renamable $f8 = LFD 0, killed renamable $x7 :: (load (s64) from constant-pool)1567  ; 64BIT-NEXT:   renamable $x5 = LIS8 163201568  ; 64BIT-NEXT:   renamable $x7 = LDtocCPT %const.8, $x2 :: (load (s64) from got)1569  ; 64BIT-NEXT:   renamable $f9 = LFD 0, killed renamable $x6 :: (load (s64) from constant-pool)1570  ; 64BIT-NEXT:   renamable $x6 = LIS8 163181571  ; 64BIT-NEXT:   renamable $x8 = LDtocCPT %const.9, $x2 :: (load (s64) from got)1572  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x4 :: (load (s64) from constant-pool)1573  ; 64BIT-NEXT:   renamable $x4 = LIS8 163161574  ; 64BIT-NEXT:   renamable $f11 = LFD 0, killed renamable $x7 :: (load (s64) from constant-pool)1575  ; 64BIT-NEXT:   renamable $x7 = LIS8 163131576  ; 64BIT-NEXT:   renamable $f12 = LFD 0, killed renamable $x8 :: (load (s64) from constant-pool)1577  ; 64BIT-NEXT:   renamable $x8 = LDtocCPT %const.10, $x2 :: (load (s64) from got)1578  ; 64BIT-NEXT:   renamable $x5 = ORI8 killed renamable $x5, 419431579  ; 64BIT-NEXT:   renamable $x6 = ORI8 killed renamable $x6, 471851580  ; 64BIT-NEXT:   renamable $x4 = ORI8 killed renamable $x4, 104851581  ; 64BIT-NEXT:   renamable $x7 = ORI8 killed renamable $x7, 393211582  ; 64BIT-NEXT:   renamable $f13 = LFD 0, killed renamable $x8 :: (load (s64) from constant-pool)1583  ; 64BIT-NEXT:   renamable $x8 = LDtocCPT %const.11, $x2 :: (load (s64) from got)1584  ; 64BIT-NEXT:   renamable $x5 = RLDIC killed renamable $x5, 32, 21585  ; 64BIT-NEXT:   renamable $x6 = RLDIC killed renamable $x6, 32, 21586  ; 64BIT-NEXT:   renamable $x4 = RLDIC killed renamable $x4, 32, 21587  ; 64BIT-NEXT:   renamable $x7 = RLDIC killed renamable $x7, 32, 21588  ; 64BIT-NEXT:   renamable $x5 = ORIS8 killed renamable $x5, 26211589  ; 64BIT-NEXT:   renamable $x6 = ORIS8 killed renamable $x6, 602931590  ; 64BIT-NEXT:   renamable $x4 = ORIS8 killed renamable $x4, 498071591  ; 64BIT-NEXT:   renamable $x7 = ORIS8 killed renamable $x7, 393211592  ; 64BIT-NEXT:   renamable $x5 = ORI8 killed renamable $x5, 288361593  ; 64BIT-NEXT:   renamable $x6 = ORI8 killed renamable $x6, 78641594  ; 64BIT-NEXT:   renamable $x4 = ORI8 killed renamable $x4, 235931595  ; 64BIT-NEXT:   renamable $f5 = LFS 0, killed renamable $x8 :: (load (s32) from constant-pool)1596  ; 64BIT-NEXT:   renamable $x8 = LIS8 40911597  ; 64BIT-NEXT:   renamable $x8 = ORI8 killed renamable $x8, 131071598  ; 64BIT-NEXT:   renamable $x7 = ORI8 killed renamable $x7, 393221599  ; 64BIT-NEXT:   renamable $x8 = RLDIC killed renamable $x8, 34, 21600  ; 64BIT-NEXT:   renamable $x8 = ORIS8 killed renamable $x8, 524281601  ; 64BIT-NEXT:   renamable $x8 = ORI8 killed renamable $x8, 524291602  ; 64BIT-NEXT:   $f10 = COPY renamable $f11603  ; 64BIT-NEXT:   STW killed renamable $r3, 152, $x1 :: (store (s32) into stack + 152, align 8, basealign 16)1604  ; 64BIT-NEXT:   STD killed renamable $x5, 144, $x1 :: (store (s64) into stack + 144, align 16)1605  ; 64BIT-NEXT:   STD killed renamable $x6, 136, $x1 :: (store (s64) into stack + 136, basealign 16)1606  ; 64BIT-NEXT:   STD killed renamable $x4, 128, $x1 :: (store (s64) into stack + 128, align 16)1607  ; 64BIT-NEXT:   STD killed renamable $x7, 120, $x1 :: (store (s64) into stack + 120, basealign 16)1608  ; 64BIT-NEXT:   STD killed renamable $x8, 112, $x1 :: (store (s64) into stack + 112, align 16)1609  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .test_fpr_stack>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit $f5, implicit $f6, implicit $f7, implicit $f8, implicit $f9, implicit killed $f10, implicit $f11, implicit $f12, implicit $f13, implicit $x2, implicit-def $r1, implicit-def dead $f11610  ; 64BIT-NEXT:   ADJCALLSTACKUP 176, 0, implicit-def dead $r1, implicit $r11611  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1612entry:1613  %0 = load float, ptr @f14, align 41614  %1 = load double, ptr @d15, align 81615  %2 = load float, ptr @f16, align 41616  %call = call double @test_fpr_stack(double 1.000000e-01, double 2.000000e-01, double 3.000000e-01, double 4.000000e-01, double 5.000000e-01, double 6.000000e-01, double 0x3FE6666666666666, double 8.000000e-01, double 9.000000e-01, double 1.000000e-01, double 1.100000e-01, double 1.200000e-01, double 1.300000e-01, float %0, double %1, float %2)1617  ret void1618}1619 1620define i32 @mix_callee(double %d1, double %d2, double %d3, double %d4, i8 zeroext %c1, i16 signext %s1, i64 %ll1, i32 %i1, i32 %i2, i32 %i3) {1621  ; 32BIT-LABEL: name: mix_callee1622  ; 32BIT: bb.0.entry:1623  ; 32BIT-NEXT:   liveins: $f1, $f2, $f3, $f41624  ; 32BIT-NEXT: {{  $}}1625  ; 32BIT-NEXT:   renamable $r3 = LWZ 0, %fixed-stack.3 :: (load (s32) from %fixed-stack.3)1626  ; 32BIT-NEXT:   renamable $r4 = LHA 2, %fixed-stack.5 :: (load (s16) from %fixed-stack.5 + 2, basealign 4)1627  ; 32BIT-NEXT:   renamable $r5 = LBZ 3, %fixed-stack.6 :: (load (s8) from %fixed-stack.6 + 3, basealign 4)1628  ; 32BIT-NEXT:   renamable $r6 = LWZ 0, %fixed-stack.2 :: (load (s32) from %fixed-stack.2, align 8)1629  ; 32BIT-NEXT:   renamable $r7 = LIS 172001630  ; 32BIT-NEXT:   STW killed renamable $r7, 0, %stack.1 :: (store (s32) into %stack.1, align 8)1631  ; 32BIT-NEXT:   renamable $r7 = LWZ 0, %fixed-stack.1 :: (load (s32) from %fixed-stack.1)1632  ; 32BIT-NEXT:   renamable $r4 = nsw ADD4 killed renamable $r5, killed renamable $r41633  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.0, $r2 :: (load (s32) from got)1634  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r4, killed renamable $r31635  ; 32BIT-NEXT:   renamable $r4 = LWZ 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0, align 16)1636  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r61637  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r71638  ; 32BIT-NEXT:   renamable $f0 = LFS 0, killed renamable $r5 :: (load (s32) from constant-pool)1639  ; 32BIT-NEXT:   renamable $r3 = ADD4 killed renamable $r3, killed renamable $r41640  ; 32BIT-NEXT:   renamable $r3 = XORIS killed renamable $r3, 327681641  ; 32BIT-NEXT:   STW killed renamable $r3, 4, %stack.1 :: (store (s32) into %stack.1 + 4)1642  ; 32BIT-NEXT:   renamable $f5 = LFD 0, %stack.1 :: (load (s64) from %stack.1)1643  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1644  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f3, implicit $rm1645  ; 32BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f4, implicit $rm1646  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FSUB killed renamable $f5, killed renamable $f0, implicit $rm1647  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm1648  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm1649  ; 32BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)1650  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)1651  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r31652  ;1653  ; 64BIT-LABEL: name: mix_callee1654  ; 64BIT: bb.0.entry:1655  ; 64BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $x7, $x8, $x9, $x101656  ; 64BIT-NEXT: {{  $}}1657  ; 64BIT-NEXT:   renamable $x3 = LWZ8 0, %fixed-stack.1 :: (load (s32) from %fixed-stack.1)1658  ; 64BIT-NEXT:   renamable $r4 = nsw ADD4 renamable $r7, renamable $r8, implicit killed $x8, implicit killed $x7, implicit-def $x41659  ; 64BIT-NEXT:   renamable $x5 = LWZ8 0, %fixed-stack.0 :: (load (s32) from %fixed-stack.0)1660  ; 64BIT-NEXT:   renamable $x4 = ADD8 killed renamable $x4, killed renamable $x91661  ; 64BIT-NEXT:   renamable $x4 = ADD8 killed renamable $x4, killed renamable $x101662  ; 64BIT-NEXT:   renamable $x3 = ADD8 killed renamable $x4, killed renamable $x31663  ; 64BIT-NEXT:   renamable $x3 = ADD8 killed renamable $x3, killed renamable $x51664  ; 64BIT-NEXT:   renamable $x3 = EXTSW killed renamable $x31665  ; 64BIT-NEXT:   STD killed renamable $x3, 0, %stack.1 :: (store (s64) into %stack.1)1666  ; 64BIT-NEXT:   renamable $f0 = LFD 0, %stack.1 :: (load (s64) from %stack.1)1667  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1668  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f3, implicit $rm1669  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f4, implicit $rm1670  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FCFID killed renamable $f0, implicit $rm1671  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm1672  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm1673  ; 64BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)1674  ; 64BIT-NEXT:   renamable $x3 = LWZ8 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)1675  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x31676  entry:1677    %add = fadd double %d1, %d21678    %add1 = fadd double %add, %d31679    %add2 = fadd double %add1, %d41680    %conv = zext i8 %c1 to i321681    %conv3 = sext i16 %s1 to i321682    %add4 = add nsw i32 %conv, %conv31683    %conv5 = sext i32 %add4 to i641684    %add6 = add nsw i64 %conv5, %ll11685    %conv7 = sext i32 %i1 to i641686    %add8 = add nsw i64 %add6, %conv71687    %conv9 = sext i32 %i2 to i641688    %add10 = add nsw i64 %add8, %conv91689    %conv11 = sext i32 %i3 to i641690    %add12 = add nsw i64 %add10, %conv111691    %conv13 = trunc i64 %add12 to i321692    %conv14 = sitofp i32 %conv13 to double1693    %add15 = fadd double %conv14, %add21694    %conv16 = fptosi double %add15 to i321695    ret i32 %conv161696  }1697 1698define void @caller_mix() {1699  ; 32BIT-LABEL: name: caller_mix1700  ; 32BIT: bb.0.entry:1701  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 84, 0, implicit-def dead $r1, implicit $r11702  ; 32BIT-NEXT:   renamable $r3 = LI 601703  ; 32BIT-NEXT:   STW killed renamable $r3, 80, $r1 :: (store (s32) into stack + 80, align 16)1704  ; 32BIT-NEXT:   renamable $r3 = LI 501705  ; 32BIT-NEXT:   STW killed renamable $r3, 76, $r1 :: (store (s32) into stack + 76, basealign 16)1706  ; 32BIT-NEXT:   renamable $r3 = LI 401707  ; 32BIT-NEXT:   STW killed renamable $r3, 72, $r1 :: (store (s32) into stack + 72, align 8, basealign 16)1708  ; 32BIT-NEXT:   renamable $r3 = LI 01709  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.0, $r2 :: (load (s32) from got)1710  ; 32BIT-NEXT:   STW killed renamable $r3, 64, $r1 :: (store (s32) into stack + 64, align 16)1711  ; 32BIT-NEXT:   renamable $r3 = LI 21712  ; 32BIT-NEXT:   STW killed renamable $r3, 60, $r1 :: (store (s32) into stack + 60, basealign 16)1713  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.1, $r2 :: (load (s32) from got)1714  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1715  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.2, $r2 :: (load (s32) from got)1716  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1717  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.3, $r2 :: (load (s32) from got)1718  ; 32BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1719  ; 32BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1720  ; 32BIT-NEXT:   renamable $r3 = LI 11721  ; 32BIT-NEXT:   STW killed renamable $r3, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1722  ; 32BIT-NEXT:   renamable $r3 = LIS 4571723  ; 32BIT-NEXT:   renamable $r3 = ORI killed renamable $r3, 500481724  ; 32BIT-NEXT:   STW killed renamable $r3, 68, $r1 :: (store (s32) into stack + 68, basealign 16)1725  ; 32BIT-NEXT:   BL_NOP <mcsymbol .mix_callee>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit $r2, implicit-def $r1, implicit-def dead $r31726  ; 32BIT-NEXT:   ADJCALLSTACKUP 84, 0, implicit-def dead $r1, implicit $r11727  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1728  ;1729  ; 64BIT-LABEL: name: caller_mix1730  ; 64BIT: bb.0.entry:1731  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 128, 0, implicit-def dead $r1, implicit $r11732  ; 64BIT-NEXT:   renamable $x3 = LDtocCPT %const.0, $x2 :: (load (s64) from got)1733  ; 64BIT-NEXT:   renamable $x4 = LDtocCPT %const.1, $x2 :: (load (s64) from got)1734  ; 64BIT-NEXT:   renamable $x5 = LDtocCPT %const.2, $x2 :: (load (s64) from got)1735  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x3 :: (load (s64) from constant-pool)1736  ; 64BIT-NEXT:   renamable $x3 = LDtocCPT %const.3, $x2 :: (load (s64) from got)1737  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x4 :: (load (s64) from constant-pool)1738  ; 64BIT-NEXT:   renamable $x4 = LI8 601739  ; 64BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $x5 :: (load (s64) from constant-pool)1740  ; 64BIT-NEXT:   renamable $x5 = LI8 501741  ; 64BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $x3 :: (load (s64) from constant-pool)1742  ; 64BIT-NEXT:   renamable $x3 = LIS8 4571743  ; 64BIT-NEXT:   renamable $x9 = ORI8 killed renamable $x3, 500481744  ; 64BIT-NEXT:   $x7 = LI8 11745  ; 64BIT-NEXT:   $x8 = LI8 21746  ; 64BIT-NEXT:   $x10 = LI8 401747  ; 64BIT-NEXT:   STD killed renamable $x4, 120, $x1 :: (store (s64) into stack + 120, basealign 16)1748  ; 64BIT-NEXT:   STD killed renamable $x5, 112, $x1 :: (store (s64) into stack + 112, align 16)1749  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .mix_callee>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit killed $x7, implicit killed $x8, implicit $x9, implicit killed $x10, implicit $x2, implicit-def $r1, implicit-def dead $x31750  ; 64BIT-NEXT:   ADJCALLSTACKUP 128, 0, implicit-def dead $r1, implicit $r11751  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm1752  entry:1753%call = call i32 @mix_callee(double 1.000000e-01, double 2.000000e-01, double 3.000000e-01, double 4.000000e-01, i8 zeroext 1, i16 signext 2, i64 30000000, i32 40, i32 50, i32 60)1754    ret void1755  }1756 1757  define i32 @mix_floats(i32 %i1, i32 %i2, i32 %i3, i32 %i4, i32 %i5, i32 %i6, i32 %i7, i32 %i8, double %d1, double %d2, double %d3, double %d4, double %d5, double %d6, double %d7, double %d8, double %d9, double %d10, double %d11, double %d12, double %d13, double %d14) {1758  ; 32BIT-LABEL: name: mix_floats1759  ; 32BIT: bb.0.entry:1760  ; 32BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f13, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r101761  ; 32BIT-NEXT: {{  $}}1762  ; 32BIT-NEXT:   renamable $r11 = LIS 172001763  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r41764  ; 32BIT-NEXT:   STW killed renamable $r11, 0, %stack.1 :: (store (s32) into %stack.1, align 8)1765  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.0, $r2 :: (load (s32) from got)1766  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r51767  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r61768  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r71769  ; 32BIT-NEXT:   renamable $f0 = LFS 0, killed renamable $r4 :: (load (s32) from constant-pool)1770  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r81771  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r91772  ; 32BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, killed renamable $r101773  ; 32BIT-NEXT:   renamable $r3 = XORIS killed renamable $r3, 327681774  ; 32BIT-NEXT:   STW killed renamable $r3, 4, %stack.1 :: (store (s32) into %stack.1 + 4)1775  ; 32BIT-NEXT:   renamable $f31 = LFD 0, %stack.1 :: (load (s64) from %stack.1)1776  ; 32BIT-NEXT:   renamable $f30 = LFD 0, %fixed-stack.0 :: (load (s64) from %fixed-stack.0, align 16)1777  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FSUB killed renamable $f31, killed renamable $f0, implicit $rm1778  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f1, implicit $rm1779  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f2, implicit $rm1780  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f3, implicit $rm1781  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f4, implicit $rm1782  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f5, implicit $rm1783  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f6, implicit $rm1784  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f7, implicit $rm1785  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f8, implicit $rm1786  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f9, implicit $rm1787  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f10, implicit $rm1788  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f11, implicit $rm1789  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f12, implicit $rm1790  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f13, implicit $rm1791  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f0, killed renamable $f30, implicit $rm1792  ; 32BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm1793  ; 32BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)1794  ; 32BIT-NEXT:   renamable $r3 = LWZ 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)1795  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm, implicit $r31796  ;1797  ; 64BIT-LABEL: name: mix_floats1798  ; 64BIT: bb.0.entry:1799  ; 64BIT-NEXT:   liveins: $f1, $f2, $f3, $f4, $f5, $f6, $f7, $f8, $f9, $f10, $f11, $f12, $f13, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x101800  ; 64BIT-NEXT: {{  $}}1801  ; 64BIT-NEXT:   renamable $f0 = LFD 0, %fixed-stack.0 :: (load (s64) from %fixed-stack.0)1802  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 renamable $r3, renamable $r4, implicit killed $x4, implicit killed $x31803  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r5, implicit killed $x51804  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r6, implicit killed $x61805  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r7, implicit killed $x71806  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r8, implicit killed $x81807  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r9, implicit killed $x91808  ; 64BIT-NEXT:   renamable $r3 = nsw ADD4 killed renamable $r3, renamable $r10, implicit killed $x101809  ; 64BIT-NEXT:   renamable $x3 = EXTSW_32_64 killed renamable $r31810  ; 64BIT-NEXT:   STD killed renamable $x3, 0, %stack.1 :: (store (s64) into %stack.1)1811  ; 64BIT-NEXT:   renamable $f31 = LFD 0, %stack.1 :: (load (s64) from %stack.1)1812  ; 64BIT-NEXT:   renamable $f31 = nofpexcept FCFID killed renamable $f31, implicit $rm1813  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f31, killed renamable $f1, implicit $rm1814  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f2, implicit $rm1815  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f3, implicit $rm1816  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f4, implicit $rm1817  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f5, implicit $rm1818  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f6, implicit $rm1819  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f7, implicit $rm1820  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f8, implicit $rm1821  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f9, implicit $rm1822  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f10, implicit $rm1823  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f11, implicit $rm1824  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f12, implicit $rm1825  ; 64BIT-NEXT:   renamable $f1 = nofpexcept FADD killed renamable $f1, killed renamable $f13, implicit $rm1826  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FADD killed renamable $f1, killed renamable $f0, implicit $rm1827  ; 64BIT-NEXT:   renamable $f0 = nofpexcept FCTIWZ killed renamable $f0, implicit $rm1828  ; 64BIT-NEXT:   STFD killed renamable $f0, 0, %stack.0 :: (store (s64) into %stack.0)1829  ; 64BIT-NEXT:   renamable $x3 = LWZ8 4, %stack.0 :: (load (s32) from %stack.0 + 4, basealign 8)1830  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm, implicit $x31831  entry:1832    %add = add nsw i32 %i1, %i21833    %add1 = add nsw i32 %add, %i31834    %add2 = add nsw i32 %add1, %i41835    %add3 = add nsw i32 %add2, %i51836    %add4 = add nsw i32 %add3, %i61837    %add5 = add nsw i32 %add4, %i71838    %add6 = add nsw i32 %add5, %i81839    %conv = sitofp i32 %add6 to double1840    %add7 = fadd double %conv, %d11841    %add8 = fadd double %add7, %d21842    %add9 = fadd double %add8, %d31843    %add10 = fadd double %add9, %d41844    %add11 = fadd double %add10, %d51845    %add12 = fadd double %add11, %d61846    %add13 = fadd double %add12, %d71847    %add14 = fadd double %add13, %d81848    %add15 = fadd double %add14, %d91849    %add16 = fadd double %add15, %d101850    %add17 = fadd double %add16, %d111851    %add18 = fadd double %add17, %d121852    %add19 = fadd double %add18, %d131853    %add20 = fadd double %add19, %d141854    %conv21 = fptosi double %add20 to i321855    ret i32 %conv211856  }1857 1858  define void @mix_floats_caller() {1859  ; 32BIT-LABEL: name: mix_floats_caller1860  ; 32BIT: bb.0.entry:1861  ; 32BIT-NEXT:   ADJCALLSTACKDOWN 168, 0, implicit-def dead $r1, implicit $r11862  ; 32BIT-NEXT:   renamable $r3 = LI 01863  ; 32BIT-NEXT:   renamable $r4 = LIS 163521864  ; 32BIT-NEXT:   renamable $r5 = LIS 163681865  ; 32BIT-NEXT:   renamable $r6 = LIS 393211866  ; 32BIT-NEXT:   renamable $r7 = LIS 163131867  ; 32BIT-NEXT:   renamable $r8 = LIS 163291868  ; 32BIT-NEXT:   renamable $r9 = LIS 131071869  ; 32BIT-NEXT:   renamable $r10 = LIS 163391870  ; 32BIT-NEXT:   STW renamable $r3, 92, $r1 :: (store (s32) into stack + 92, basealign 16)1871  ; 32BIT-NEXT:   renamable $r11 = LIS 163451872  ; 32BIT-NEXT:   STW killed renamable $r4, 88, $r1 :: (store (s32) into stack + 88, align 8, basealign 16)1873  ; 32BIT-NEXT:   renamable $r4 = LIS 163551874  ; 32BIT-NEXT:   STW killed renamable $r3, 132, $r1 :: (store (s32) into stack + 132, basealign 16)1875  ; 32BIT-NEXT:   renamable $r3 = LIS 262141876  ; 32BIT-NEXT:   STW killed renamable $r5, 128, $r1 :: (store (s32) into stack + 128, align 16)1877  ; 32BIT-NEXT:   renamable $r5 = ORI killed renamable $r6, 393221878  ; 32BIT-NEXT:   STW renamable $r5, 60, $r1 :: (store (s32) into stack + 60, basealign 16)1879  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r7, 393211880  ; 32BIT-NEXT:   STW killed renamable $r6, 56, $r1 :: (store (s32) into stack + 56, align 8, basealign 16)1881  ; 32BIT-NEXT:   renamable $r6 = LIS 163581882  ; 32BIT-NEXT:   STW renamable $r5, 68, $r1 :: (store (s32) into stack + 68, basealign 16)1883  ; 32BIT-NEXT:   renamable $r7 = ORI killed renamable $r8, 393211884  ; 32BIT-NEXT:   STW killed renamable $r7, 64, $r1 :: (store (s32) into stack + 64, align 16)1885  ; 32BIT-NEXT:   renamable $r7 = ORI killed renamable $r9, 131071886  ; 32BIT-NEXT:   STW renamable $r7, 76, $r1 :: (store (s32) into stack + 76, basealign 16)1887  ; 32BIT-NEXT:   renamable $r8 = ORI killed renamable $r10, 131071888  ; 32BIT-NEXT:   STW killed renamable $r8, 72, $r1 :: (store (s32) into stack + 72, align 8, basealign 16)1889  ; 32BIT-NEXT:   renamable $r8 = LIS 163611890  ; 32BIT-NEXT:   STW renamable $r5, 84, $r1 :: (store (s32) into stack + 84, basealign 16)1891  ; 32BIT-NEXT:   renamable $r9 = ORI killed renamable $r11, 393211892  ; 32BIT-NEXT:   STW killed renamable $r9, 80, $r1 :: (store (s32) into stack + 80, align 16)1893  ; 32BIT-NEXT:   renamable $r9 = LIS 524281894  ; 32BIT-NEXT:   STW renamable $r7, 100, $r1 :: (store (s32) into stack + 100, basealign 16)1895  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 131071896  ; 32BIT-NEXT:   STW killed renamable $r4, 96, $r1 :: (store (s32) into stack + 96, align 16)1897  ; 32BIT-NEXT:   renamable $r3 = ORI killed renamable $r3, 262141898  ; 32BIT-NEXT:   STW renamable $r3, 108, $r1 :: (store (s32) into stack + 108, basealign 16)1899  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r6, 262141900  ; 32BIT-NEXT:   STW killed renamable $r4, 104, $r1 :: (store (s32) into stack + 104, align 8, basealign 16)1901  ; 32BIT-NEXT:   renamable $r4 = LIS 163641902  ; 32BIT-NEXT:   STW renamable $r5, 116, $r1 :: (store (s32) into stack + 116, basealign 16)1903  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r8, 393211904  ; 32BIT-NEXT:   STW killed renamable $r6, 112, $r1 :: (store (s32) into stack + 112, align 16)1905  ; 32BIT-NEXT:   renamable $r6 = ORI killed renamable $r9, 524291906  ; 32BIT-NEXT:   STW renamable $r6, 124, $r1 :: (store (s32) into stack + 124, basealign 16)1907  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 524281908  ; 32BIT-NEXT:   STW killed renamable $r4, 120, $r1 :: (store (s32) into stack + 120, align 8, basealign 16)1909  ; 32BIT-NEXT:   renamable $r4 = LIS 163691910  ; 32BIT-NEXT:   STW killed renamable $r5, 140, $r1 :: (store (s32) into stack + 140, basealign 16)1911  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 393211912  ; 32BIT-NEXT:   STW killed renamable $r4, 136, $r1 :: (store (s32) into stack + 136, align 8, basealign 16)1913  ; 32BIT-NEXT:   renamable $r4 = LIS 163711914  ; 32BIT-NEXT:   STW killed renamable $r7, 148, $r1 :: (store (s32) into stack + 148, basealign 16)1915  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 131071916  ; 32BIT-NEXT:   STW killed renamable $r4, 144, $r1 :: (store (s32) into stack + 144, align 16)1917  ; 32BIT-NEXT:   renamable $r4 = LIS 163721918  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.0, $r2 :: (load (s32) from got)1919  ; 32BIT-NEXT:   STW killed renamable $r6, 156, $r1 :: (store (s32) into stack + 156, basealign 16)1920  ; 32BIT-NEXT:   renamable $r4 = ORI killed renamable $r4, 524281921  ; 32BIT-NEXT:   STW killed renamable $r4, 152, $r1 :: (store (s32) into stack + 152, align 8, basealign 16)1922  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.1, $r2 :: (load (s32) from got)1923  ; 32BIT-NEXT:   STW killed renamable $r3, 164, $r1 :: (store (s32) into stack + 164, basealign 16)1924  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.2, $r2 :: (load (s32) from got)1925  ; 32BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $r5 :: (load (s64) from constant-pool)1926  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.3, $r2 :: (load (s32) from got)1927  ; 32BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1928  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.4, $r2 :: (load (s32) from got)1929  ; 32BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1930  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.5, $r2 :: (load (s32) from got)1931  ; 32BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $r5 :: (load (s64) from constant-pool)1932  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.6, $r2 :: (load (s32) from got)1933  ; 32BIT-NEXT:   renamable $f6 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1934  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.7, $r2 :: (load (s32) from got)1935  ; 32BIT-NEXT:   renamable $f7 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1936  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.8, $r2 :: (load (s32) from got)1937  ; 32BIT-NEXT:   renamable $f8 = LFD 0, killed renamable $r5 :: (load (s64) from constant-pool)1938  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.9, $r2 :: (load (s32) from got)1939  ; 32BIT-NEXT:   renamable $f9 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1940  ; 32BIT-NEXT:   renamable $r4 = LWZtoc %const.10, $r2 :: (load (s32) from got)1941  ; 32BIT-NEXT:   renamable $f11 = LFD 0, killed renamable $r3 :: (load (s64) from constant-pool)1942  ; 32BIT-NEXT:   renamable $r3 = LWZtoc %const.11, $r2 :: (load (s32) from got)1943  ; 32BIT-NEXT:   renamable $f12 = LFD 0, killed renamable $r5 :: (load (s64) from constant-pool)1944  ; 32BIT-NEXT:   renamable $r5 = LWZtoc %const.12, $r2 :: (load (s32) from got)1945  ; 32BIT-NEXT:   renamable $f13 = LFD 0, killed renamable $r4 :: (load (s64) from constant-pool)1946  ; 32BIT-NEXT:   renamable $r4 = LIS 163741947  ; 32BIT-NEXT:   renamable $f5 = LFS 0, killed renamable $r3 :: (load (s32) from constant-pool)1948  ; 32BIT-NEXT:   renamable $r11 = ORI killed renamable $r4, 262141949  ; 32BIT-NEXT:   renamable $f10 = LFS 0, killed renamable $r5 :: (load (s32) from constant-pool)1950  ; 32BIT-NEXT:   $r3 = LI 11951  ; 32BIT-NEXT:   $r4 = LI 21952  ; 32BIT-NEXT:   $r5 = LI 31953  ; 32BIT-NEXT:   $r6 = LI 41954  ; 32BIT-NEXT:   $r7 = LI 51955  ; 32BIT-NEXT:   $r8 = LI 61956  ; 32BIT-NEXT:   $r9 = LI 71957  ; 32BIT-NEXT:   $r10 = LI 81958  ; 32BIT-NEXT:   STW killed renamable $r11, 160, $r1 :: (store (s32) into stack + 160, align 16)1959  ; 32BIT-NEXT:   BL_NOP <mcsymbol .mix_floats>, csr_aix32, implicit-def dead $lr, implicit $rm, implicit $r3, implicit $r4, implicit $r5, implicit $r6, implicit $r7, implicit $r8, implicit $r9, implicit $r10, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit $f5, implicit $f6, implicit $f7, implicit $f8, implicit $f9, implicit $f10, implicit $f11, implicit $f12, implicit $f13, implicit $r2, implicit-def $r1, implicit-def dead $r31960  ; 32BIT-NEXT:   ADJCALLSTACKUP 168, 0, implicit-def dead $r1, implicit $r11961  ; 32BIT-NEXT:   BLR implicit $lr, implicit $rm1962  ;1963  ; 64BIT-LABEL: name: mix_floats_caller1964  ; 64BIT: bb.0.entry:1965  ; 64BIT-NEXT:   ADJCALLSTACKDOWN 224, 0, implicit-def dead $r1, implicit $r11966  ; 64BIT-NEXT:   renamable $x3 = LI8 10231967  ; 64BIT-NEXT:   renamable $x4 = LI8 5111968  ; 64BIT-NEXT:   renamable $x5 = LIS8 163741969  ; 64BIT-NEXT:   renamable $x6 = LIS8 163711970  ; 64BIT-NEXT:   renamable $x7 = LIS8 163581971  ; 64BIT-NEXT:   renamable $x8 = LIS8 163551972  ; 64BIT-NEXT:   renamable $x9 = LIS8 163391973  ; 64BIT-NEXT:   renamable $x10 = LIS8 40931974  ; 64BIT-NEXT:   renamable $x11 = LDtocCPT %const.0, $x2 :: (load (s64) from got)1975  ; 64BIT-NEXT:   renamable $x29 = LIS8 163691976  ; 64BIT-NEXT:   renamable $x28 = LIS8 40911977  ; 64BIT-NEXT:   renamable $x12 = LDtocCPT %const.1, $x2 :: (load (s64) from got)1978  ; 64BIT-NEXT:   renamable $x27 = LIS8 163611979  ; 64BIT-NEXT:   renamable $x31 = LDtocCPT %const.2, $x2 :: (load (s64) from got)1980  ; 64BIT-NEXT:   renamable $f1 = LFD 0, killed renamable $x11 :: (load (s64) from constant-pool)1981  ; 64BIT-NEXT:   renamable $x26 = LIS8 163451982  ; 64BIT-NEXT:   renamable $x11 = LDtocCPT %const.3, $x2 :: (load (s64) from got)1983  ; 64BIT-NEXT:   renamable $f2 = LFD 0, killed renamable $x12 :: (load (s64) from constant-pool)1984  ; 64BIT-NEXT:   renamable $x25 = LIS8 163291985  ; 64BIT-NEXT:   renamable $f3 = LFD 0, killed renamable $x31 :: (load (s64) from constant-pool)1986  ; 64BIT-NEXT:   renamable $x24 = LIS8 163131987  ; 64BIT-NEXT:   renamable $x23 = LDtocCPT %const.4, $x2 :: (load (s64) from got)1988  ; 64BIT-NEXT:   renamable $x22 = LDtocCPT %const.5, $x2 :: (load (s64) from got)1989  ; 64BIT-NEXT:   renamable $x21 = LDtocCPT %const.6, $x2 :: (load (s64) from got)1990  ; 64BIT-NEXT:   renamable $x20 = LDtocCPT %const.7, $x2 :: (load (s64) from got)1991  ; 64BIT-NEXT:   renamable $x19 = LDtocCPT %const.8, $x2 :: (load (s64) from got)1992  ; 64BIT-NEXT:   renamable $x18 = LDtocCPT %const.9, $x2 :: (load (s64) from got)1993  ; 64BIT-NEXT:   renamable $x17 = LDtocCPT %const.10, $x2 :: (load (s64) from got)1994  ; 64BIT-NEXT:   renamable $f4 = LFD 0, killed renamable $x11 :: (load (s64) from constant-pool)1995  ; 64BIT-NEXT:   renamable $x16 = LDtocCPT %const.11, $x2 :: (load (s64) from got)1996  ; 64BIT-NEXT:   renamable $x11 = ORI8 killed renamable $x5, 262141997  ; 64BIT-NEXT:   renamable $x12 = ORI8 killed renamable $x6, 131071998  ; 64BIT-NEXT:   renamable $x0 = ORI8 killed renamable $x7, 262141999  ; 64BIT-NEXT:   renamable $x31 = ORI8 killed renamable $x8, 131072000  ; 64BIT-NEXT:   renamable $x30 = ORI8 killed renamable $x9, 131072001  ; 64BIT-NEXT:   renamable $x5 = ORI8 killed renamable $x10, 131072002  ; 64BIT-NEXT:   renamable $x6 = ORI8 killed renamable $x29, 393212003  ; 64BIT-NEXT:   renamable $x7 = ORI8 killed renamable $x28, 131072004  ; 64BIT-NEXT:   renamable $x8 = ORI8 killed renamable $x27, 393212005  ; 64BIT-NEXT:   renamable $x9 = ORI8 killed renamable $x26, 393212006  ; 64BIT-NEXT:   renamable $x10 = ORI8 killed renamable $x25, 393212007  ; 64BIT-NEXT:   renamable $x27 = ORI8 killed renamable $x24, 393212008  ; 64BIT-NEXT:   renamable $f6 = LFD 0, killed renamable $x23 :: (load (s64) from constant-pool)2009  ; 64BIT-NEXT:   renamable $x26 = LDtocCPT %const.12, $x2 :: (load (s64) from got)2010  ; 64BIT-NEXT:   renamable $x29 = RLDIC killed renamable $x3, 52, 22011  ; 64BIT-NEXT:   renamable $x28 = RLDIC killed renamable $x4, 53, 22012  ; 64BIT-NEXT:   renamable $x11 = RLDIMI killed renamable $x11, renamable $x11, 32, 02013  ; 64BIT-NEXT:   renamable $x12 = RLDIMI killed renamable $x12, renamable $x12, 32, 02014  ; 64BIT-NEXT:   renamable $x0 = RLDIMI killed renamable $x0, renamable $x0, 32, 02015  ; 64BIT-NEXT:   renamable $x31 = RLDIMI killed renamable $x31, renamable $x31, 32, 02016  ; 64BIT-NEXT:   renamable $x30 = RLDIMI killed renamable $x30, renamable $x30, 32, 02017  ; 64BIT-NEXT:   renamable $x3 = RLDIC killed renamable $x5, 34, 22018  ; 64BIT-NEXT:   renamable $x4 = RLDIC killed renamable $x6, 32, 22019  ; 64BIT-NEXT:   renamable $x5 = RLDIC killed renamable $x7, 34, 22020  ; 64BIT-NEXT:   renamable $x6 = RLDIC killed renamable $x8, 32, 22021  ; 64BIT-NEXT:   renamable $x7 = RLDIC killed renamable $x9, 32, 22022  ; 64BIT-NEXT:   renamable $x8 = RLDIC killed renamable $x10, 32, 22023  ; 64BIT-NEXT:   renamable $x9 = RLDIC killed renamable $x27, 32, 22024  ; 64BIT-NEXT:   renamable $x11 = RLWIMI8 killed renamable $x11, renamable $x11, 16, 0, 152025  ; 64BIT-NEXT:   renamable $x12 = RLWIMI8 killed renamable $x12, renamable $x12, 16, 0, 152026  ; 64BIT-NEXT:   renamable $x0 = RLWIMI8 killed renamable $x0, renamable $x0, 16, 0, 152027  ; 64BIT-NEXT:   renamable $x31 = RLWIMI8 killed renamable $x31, renamable $x31, 16, 0, 152028  ; 64BIT-NEXT:   renamable $x30 = RLWIMI8 killed renamable $x30, renamable $x30, 16, 0, 152029  ; 64BIT-NEXT:   renamable $x3 = ORIS8 killed renamable $x3, 524282030  ; 64BIT-NEXT:   renamable $x4 = ORIS8 killed renamable $x4, 393212031  ; 64BIT-NEXT:   renamable $x5 = ORIS8 killed renamable $x5, 524282032  ; 64BIT-NEXT:   renamable $x6 = ORIS8 killed renamable $x6, 393212033  ; 64BIT-NEXT:   renamable $x7 = ORIS8 killed renamable $x7, 393212034  ; 64BIT-NEXT:   renamable $x8 = ORIS8 killed renamable $x8, 393212035  ; 64BIT-NEXT:   renamable $x9 = ORIS8 killed renamable $x9, 393212036  ; 64BIT-NEXT:   renamable $f7 = LFD 0, killed renamable $x22 :: (load (s64) from constant-pool)2037  ; 64BIT-NEXT:   renamable $x27 = ORI8 killed renamable $x3, 524292038  ; 64BIT-NEXT:   renamable $f8 = LFD 0, killed renamable $x21 :: (load (s64) from constant-pool)2039  ; 64BIT-NEXT:   renamable $x25 = ORI8 killed renamable $x4, 393222040  ; 64BIT-NEXT:   renamable $f9 = LFD 0, killed renamable $x20 :: (load (s64) from constant-pool)2041  ; 64BIT-NEXT:   renamable $x24 = ORI8 killed renamable $x5, 524292042  ; 64BIT-NEXT:   renamable $f11 = LFD 0, killed renamable $x19 :: (load (s64) from constant-pool)2043  ; 64BIT-NEXT:   renamable $x23 = ORI8 killed renamable $x6, 393222044  ; 64BIT-NEXT:   renamable $f12 = LFD 0, killed renamable $x18 :: (load (s64) from constant-pool)2045  ; 64BIT-NEXT:   renamable $x22 = ORI8 killed renamable $x7, 393222046  ; 64BIT-NEXT:   renamable $f13 = LFD 0, killed renamable $x17 :: (load (s64) from constant-pool)2047  ; 64BIT-NEXT:   renamable $x21 = ORI8 killed renamable $x8, 393222048  ; 64BIT-NEXT:   renamable $f5 = LFS 0, killed renamable $x16 :: (load (s32) from constant-pool)2049  ; 64BIT-NEXT:   renamable $x20 = ORI8 killed renamable $x9, 393222050  ; 64BIT-NEXT:   renamable $f10 = LFS 0, killed renamable $x26 :: (load (s32) from constant-pool)2051  ; 64BIT-NEXT:   $x3 = LI8 12052  ; 64BIT-NEXT:   $x4 = LI8 22053  ; 64BIT-NEXT:   $x5 = LI8 32054  ; 64BIT-NEXT:   $x6 = LI8 42055  ; 64BIT-NEXT:   $x7 = LI8 52056  ; 64BIT-NEXT:   $x8 = LI8 62057  ; 64BIT-NEXT:   $x9 = LI8 72058  ; 64BIT-NEXT:   $x10 = LI8 82059  ; 64BIT-NEXT:   STD killed renamable $x29, 184, $x1 :: (store (s64) into stack + 184, basealign 16)2060  ; 64BIT-NEXT:   STD killed renamable $x28, 144, $x1 :: (store (s64) into stack + 144, align 16)2061  ; 64BIT-NEXT:   STD killed renamable $x11, 216, $x1 :: (store (s64) into stack + 216, basealign 16)2062  ; 64BIT-NEXT:   STD killed renamable $x12, 200, $x1 :: (store (s64) into stack + 200, basealign 16)2063  ; 64BIT-NEXT:   STD killed renamable $x0, 160, $x1 :: (store (s64) into stack + 160, align 16)2064  ; 64BIT-NEXT:   STD killed renamable $x31, 152, $x1 :: (store (s64) into stack + 152, basealign 16)2065  ; 64BIT-NEXT:   STD killed renamable $x30, 128, $x1 :: (store (s64) into stack + 128, align 16)2066  ; 64BIT-NEXT:   STD killed renamable $x27, 208, $x1 :: (store (s64) into stack + 208, align 16)2067  ; 64BIT-NEXT:   STD killed renamable $x25, 192, $x1 :: (store (s64) into stack + 192, align 16)2068  ; 64BIT-NEXT:   STD killed renamable $x24, 176, $x1 :: (store (s64) into stack + 176, align 16)2069  ; 64BIT-NEXT:   STD killed renamable $x23, 168, $x1 :: (store (s64) into stack + 168, basealign 16)2070  ; 64BIT-NEXT:   STD killed renamable $x22, 136, $x1 :: (store (s64) into stack + 136, basealign 16)2071  ; 64BIT-NEXT:   STD killed renamable $x21, 120, $x1 :: (store (s64) into stack + 120, basealign 16)2072  ; 64BIT-NEXT:   STD killed renamable $x20, 112, $x1 :: (store (s64) into stack + 112, align 16)2073  ; 64BIT-NEXT:   BL8_NOP <mcsymbol .mix_floats>, csr_ppc64, implicit-def dead $lr8, implicit $rm, implicit $x3, implicit $x4, implicit $x5, implicit $x6, implicit $x7, implicit $x8, implicit $x9, implicit $x10, implicit $f1, implicit $f2, implicit $f3, implicit $f4, implicit $f5, implicit $f6, implicit $f7, implicit $f8, implicit $f9, implicit $f10, implicit $f11, implicit $f12, implicit $f13, implicit $x2, implicit-def $r1, implicit-def dead $x32074  ; 64BIT-NEXT:   ADJCALLSTACKUP 224, 0, implicit-def dead $r1, implicit $r12075  ; 64BIT-NEXT:   BLR8 implicit $lr8, implicit $rm2076  entry:2077    %call = call i32 @mix_floats(i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, double 1.000000e-01, double 2.000000e-01, double 3.000000e-01, double 4.000000e-01, double 5.000000e-01, double 6.000000e-01, double 0x3FE6666666666666, double 8.000000e-01, double 9.000000e-01, double 1.000000e+00, double 1.100000e+00, double 1.200000e+00, double 1.300000e+00, double 1.400000e+00)2078    ret void2079  }2080 2081