brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.9 KiB · b8b5c0c Raw
313 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel -stop-after=irtranslator -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS323 4 5define  signext i8 @sext_arg_i8(i8 signext %a) {6  ; MIPS32-LABEL: name: sext_arg_i87  ; MIPS32: bb.1.entry:8  ; MIPS32-NEXT:   liveins: $a09  ; MIPS32-NEXT: {{  $}}10  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a011  ; MIPS32-NEXT:   [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY]], 812  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT]](s32)13  ; MIPS32-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s8)14  ; MIPS32-NEXT:   $v0 = COPY [[SEXT]](s32)15  ; MIPS32-NEXT:   RetRA implicit $v016entry:17  ret i8 %a18}19 20define zeroext i8 @zext_arg_i8(i8 zeroext %a) {21  ; MIPS32-LABEL: name: zext_arg_i822  ; MIPS32: bb.1.entry:23  ; MIPS32-NEXT:   liveins: $a024  ; MIPS32-NEXT: {{  $}}25  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a026  ; MIPS32-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY]], 827  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT]](s32)28  ; MIPS32-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8)29  ; MIPS32-NEXT:   $v0 = COPY [[ZEXT]](s32)30  ; MIPS32-NEXT:   RetRA implicit $v031entry:32  ret i8 %a33}34 35define i8 @aext_arg_i8(i8 %a) {36  ; MIPS32-LABEL: name: aext_arg_i837  ; MIPS32: bb.1.entry:38  ; MIPS32-NEXT:   liveins: $a039  ; MIPS32-NEXT: {{  $}}40  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a041  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)42  ; MIPS32-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)43  ; MIPS32-NEXT:   $v0 = COPY [[ANYEXT]](s32)44  ; MIPS32-NEXT:   RetRA implicit $v045entry:46  ret i8 %a47}48 49declare signext i8 @sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)50declare zeroext i8 @zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)51declare i8 @aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)52 53define signext i8 @call_sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 signext %a) {54  ; MIPS32-LABEL: name: call_sext_stack_arg_i855  ; MIPS32: bb.1.entry:56  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a357  ; MIPS32-NEXT: {{  $}}58  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a059  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a160  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a261  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a362  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.063  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)64  ; MIPS32-NEXT:   [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[LOAD]], 865  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT]](s32)66  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp67  ; MIPS32-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s8)68  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp69  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1670  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)71  ; MIPS32-NEXT:   G_STORE [[SEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)72  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)73  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)74  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)75  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)76  ; MIPS32-NEXT:   JAL @sext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v077  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v078  ; MIPS32-NEXT:   [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 879  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_SEXT1]](s32)80  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp81  ; MIPS32-NEXT:   [[SEXT1:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC1]](s8)82  ; MIPS32-NEXT:   $v0 = COPY [[SEXT1]](s32)83  ; MIPS32-NEXT:   RetRA implicit $v084entry:85  %call = call signext i8 @sext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 signext %a)86  ret i8 %call87}88 89define zeroext i8 @call_zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 zeroext %a) {90  ; MIPS32-LABEL: name: call_zext_stack_arg_i891  ; MIPS32: bb.1.entry:92  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a393  ; MIPS32-NEXT: {{  $}}94  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a095  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a196  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a297  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a398  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.099  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)100  ; MIPS32-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[LOAD]], 8101  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT]](s32)102  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp103  ; MIPS32-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s8)104  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp105  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16106  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)107  ; MIPS32-NEXT:   G_STORE [[ZEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)108  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)109  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)110  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)111  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)112  ; MIPS32-NEXT:   JAL @zext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0113  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v0114  ; MIPS32-NEXT:   [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 8115  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[ASSERT_ZEXT1]](s32)116  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp117  ; MIPS32-NEXT:   [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC1]](s8)118  ; MIPS32-NEXT:   $v0 = COPY [[ZEXT1]](s32)119  ; MIPS32-NEXT:   RetRA implicit $v0120entry:121  %call = call zeroext i8 @zext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 zeroext %a)122  ret i8 %call123}124 125define i8 @call_aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a) {126  ; MIPS32-LABEL: name: call_aext_stack_arg_i8127  ; MIPS32: bb.1.entry:128  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3129  ; MIPS32-NEXT: {{  $}}130  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0131  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a1132  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a2133  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a3134  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0135  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)136  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[LOAD]](s32)137  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp138  ; MIPS32-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s8)139  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp140  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16141  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)142  ; MIPS32-NEXT:   G_STORE [[ANYEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)143  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)144  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)145  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)146  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)147  ; MIPS32-NEXT:   JAL @aext_stack_arg_i8, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0148  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v0149  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY5]](s32)150  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp151  ; MIPS32-NEXT:   [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s8)152  ; MIPS32-NEXT:   $v0 = COPY [[ANYEXT1]](s32)153  ; MIPS32-NEXT:   RetRA implicit $v0154entry:155  %call = call i8 @aext_stack_arg_i8(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i8 %a)156  ret i8 %call157}158 159 160define  signext i16 @sext_arg_i16(i16 signext %a) {161  ; MIPS32-LABEL: name: sext_arg_i16162  ; MIPS32: bb.1.entry:163  ; MIPS32-NEXT:   liveins: $a0164  ; MIPS32-NEXT: {{  $}}165  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0166  ; MIPS32-NEXT:   [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY]], 16167  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT]](s32)168  ; MIPS32-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)169  ; MIPS32-NEXT:   $v0 = COPY [[SEXT]](s32)170  ; MIPS32-NEXT:   RetRA implicit $v0171entry:172  ret i16 %a173}174 175define zeroext i16 @zext_arg_i16(i16 zeroext %a) {176  ; MIPS32-LABEL: name: zext_arg_i16177  ; MIPS32: bb.1.entry:178  ; MIPS32-NEXT:   liveins: $a0179  ; MIPS32-NEXT: {{  $}}180  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0181  ; MIPS32-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY]], 16182  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT]](s32)183  ; MIPS32-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s16)184  ; MIPS32-NEXT:   $v0 = COPY [[ZEXT]](s32)185  ; MIPS32-NEXT:   RetRA implicit $v0186entry:187  ret i16 %a188}189 190define i16 @aext_arg_i16(i16 %a) {191  ; MIPS32-LABEL: name: aext_arg_i16192  ; MIPS32: bb.1.entry:193  ; MIPS32-NEXT:   liveins: $a0194  ; MIPS32-NEXT: {{  $}}195  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0196  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)197  ; MIPS32-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s16)198  ; MIPS32-NEXT:   $v0 = COPY [[ANYEXT]](s32)199  ; MIPS32-NEXT:   RetRA implicit $v0200entry:201  ret i16 %a202}203 204declare signext i16 @sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)205declare zeroext i16 @zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)206declare i16 @aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)207 208define signext i16 @call_sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 signext %a) {209  ; MIPS32-LABEL: name: call_sext_stack_arg_i16210  ; MIPS32: bb.1.entry:211  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3212  ; MIPS32-NEXT: {{  $}}213  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0214  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a1215  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a2216  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a3217  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0218  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)219  ; MIPS32-NEXT:   [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[LOAD]], 16220  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT]](s32)221  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp222  ; MIPS32-NEXT:   [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)223  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp224  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16225  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)226  ; MIPS32-NEXT:   G_STORE [[SEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)227  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)228  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)229  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)230  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)231  ; MIPS32-NEXT:   JAL @sext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0232  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v0233  ; MIPS32-NEXT:   [[ASSERT_SEXT1:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[COPY5]], 16234  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_SEXT1]](s32)235  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp236  ; MIPS32-NEXT:   [[SEXT1:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC1]](s16)237  ; MIPS32-NEXT:   $v0 = COPY [[SEXT1]](s32)238  ; MIPS32-NEXT:   RetRA implicit $v0239entry:240  %call = call signext i16 @sext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 signext %a)241  ret i16 %call242}243 244define zeroext i16 @call_zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 zeroext %a) {245  ; MIPS32-LABEL: name: call_zext_stack_arg_i16246  ; MIPS32: bb.1.entry:247  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3248  ; MIPS32-NEXT: {{  $}}249  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0250  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a1251  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a2252  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a3253  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0254  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)255  ; MIPS32-NEXT:   [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[LOAD]], 16256  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT]](s32)257  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp258  ; MIPS32-NEXT:   [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC]](s16)259  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp260  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16261  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)262  ; MIPS32-NEXT:   G_STORE [[ZEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)263  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)264  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)265  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)266  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)267  ; MIPS32-NEXT:   JAL @zext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0268  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v0269  ; MIPS32-NEXT:   [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY5]], 16270  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[ASSERT_ZEXT1]](s32)271  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp272  ; MIPS32-NEXT:   [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[TRUNC1]](s16)273  ; MIPS32-NEXT:   $v0 = COPY [[ZEXT1]](s32)274  ; MIPS32-NEXT:   RetRA implicit $v0275entry:276  %call = call zeroext i16 @zext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 zeroext %a)277  ret i16 %call278}279 280define i16 @call_aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a) {281  ; MIPS32-LABEL: name: call_aext_stack_arg_i16282  ; MIPS32: bb.1.entry:283  ; MIPS32-NEXT:   liveins: $a0, $a1, $a2, $a3284  ; MIPS32-NEXT: {{  $}}285  ; MIPS32-NEXT:   [[COPY:%[0-9]+]]:_(s32) = COPY $a0286  ; MIPS32-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $a1287  ; MIPS32-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $a2288  ; MIPS32-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $a3289  ; MIPS32-NEXT:   [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %fixed-stack.0290  ; MIPS32-NEXT:   [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %fixed-stack.0, align 8)291  ; MIPS32-NEXT:   [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32)292  ; MIPS32-NEXT:   ADJCALLSTACKDOWN 24, 0, implicit-def $sp, implicit $sp293  ; MIPS32-NEXT:   [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC]](s16)294  ; MIPS32-NEXT:   [[COPY4:%[0-9]+]]:_(p0) = COPY $sp295  ; MIPS32-NEXT:   [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16296  ; MIPS32-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY4]], [[C]](s32)297  ; MIPS32-NEXT:   G_STORE [[ANYEXT]](s32), [[PTR_ADD]](p0) :: (store (s32) into stack + 16, align 8)298  ; MIPS32-NEXT:   $a0 = COPY [[COPY]](s32)299  ; MIPS32-NEXT:   $a1 = COPY [[COPY1]](s32)300  ; MIPS32-NEXT:   $a2 = COPY [[COPY2]](s32)301  ; MIPS32-NEXT:   $a3 = COPY [[COPY3]](s32)302  ; MIPS32-NEXT:   JAL @aext_stack_arg_i16, csr_o32, implicit-def $ra, implicit-def $sp, implicit $a0, implicit $a1, implicit $a2, implicit $a3, implicit-def $v0303  ; MIPS32-NEXT:   [[COPY5:%[0-9]+]]:_(s32) = COPY $v0304  ; MIPS32-NEXT:   [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY5]](s32)305  ; MIPS32-NEXT:   ADJCALLSTACKUP 24, 0, implicit-def $sp, implicit $sp306  ; MIPS32-NEXT:   [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[TRUNC1]](s16)307  ; MIPS32-NEXT:   $v0 = COPY [[ANYEXT1]](s32)308  ; MIPS32-NEXT:   RetRA implicit $v0309entry:310  %call = call i16 @aext_stack_arg_i16(i32 %x1, i32 %x2, i32 %x3, i32 %x4, i16 %a)311  ret i16 %call312}313