| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple=mips64-mti-linux-gnu -mcpu=mips64r5 -mattr=+fp64,+msa %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion | FileCheck %s --check-prefix=MSA |
| # RUN: llc -mtriple=mips64-mti-linux-gnu -mcpu=mips64r5 -mattr=+fp64,+msa %s -o - -start-before mips-delay-slot-filler -stop-after mips-branch-expansion -relocation-model=pic | FileCheck %s --check-prefix=PIC |
| |
| # Test the long branch expansion of various branches |
| |
| |
| |
| --- | |
| |
| define i32 @_Z4bz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <8 x i8> |
| %d.0.vec.expand = shufflevector <8 x i8> %0, <8 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <8 x i8> |
| %d.8.vec.expand = shufflevector <8 x i8> %1, <8 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> |
| %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> <i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> |
| %2 = tail call i32 @llvm.mips.bz.b(<16 x i8> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bz.b(<16 x i8>) |
| |
| define i32 @_Z5bz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <4 x i16> |
| %d.0.vec.expand = shufflevector <4 x i16> %0, <4 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <4 x i16> |
| %d.8.vec.expand = shufflevector <4 x i16> %1, <4 x i16> undef, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3> |
| %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7> |
| %2 = tail call i32 @llvm.mips.bz.h(<8 x i16> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bz.h(<8 x i16>) |
| |
| define i32 @_Z5bz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <2 x i32> |
| %d.0.vec.expand = shufflevector <2 x i32> %0, <2 x i32> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <2 x i32> |
| %d.8.vec.expand = shufflevector <2 x i32> %1, <2 x i32> undef, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1> |
| %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> <i32 4, i32 5, i32 2, i32 3> |
| %2 = tail call i32 @llvm.mips.bz.w(<4 x i32> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bz.w(<4 x i32>) |
| |
| define i32 @_Z5bz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0 |
| %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1 |
| %0 = tail call i32 @llvm.mips.bz.d(<2 x i64> %d.8.vec.insert) |
| %tobool = icmp eq i32 %0, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bz.d(<2 x i64>) |
| |
| define i32 @_Z5bz_64_vDv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0 |
| %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1 |
| %d.16.vec.insert = bitcast <2 x i64> %d.8.vec.insert to <16 x i8> |
| %0 = tail call i32 @llvm.mips.bz.v(<16 x i8> %d.16.vec.insert) |
| %tobool = icmp eq i32 %0, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bz.v(<16 x i8>) |
| |
| define i32 @_Z5bnz_8Dv16_a(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <8 x i8> |
| %d.0.vec.expand = shufflevector <8 x i8> %0, <8 x i8> undef, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <8 x i8> |
| %d.8.vec.expand = shufflevector <8 x i8> %1, <8 x i8> undef, <16 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> |
| %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> <i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15> |
| %2 = tail call i32 @llvm.mips.bnz.b(<16 x i8> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bnz.b(<16 x i8>) |
| |
| define i32 @_Z6bnz_16Dv8_s(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <4 x i16> |
| %d.0.vec.expand = shufflevector <4 x i16> %0, <4 x i16> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <4 x i16> |
| %d.8.vec.expand = shufflevector <4 x i16> %1, <4 x i16> undef, <8 x i32> <i32 undef, i32 undef, i32 undef, i32 undef, i32 0, i32 1, i32 2, i32 3> |
| %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7> |
| %2 = tail call i32 @llvm.mips.bnz.h(<8 x i16> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bnz.h(<8 x i16>) |
| |
| define i32 @_Z6bnz_32Dv4_i(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %0 = bitcast i64 %d.coerce0 to <2 x i32> |
| %d.0.vec.expand = shufflevector <2 x i32> %0, <2 x i32> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> |
| %1 = bitcast i64 %d.coerce1 to <2 x i32> |
| %d.8.vec.expand = shufflevector <2 x i32> %1, <2 x i32> undef, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1> |
| %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> <i32 4, i32 5, i32 2, i32 3> |
| %2 = tail call i32 @llvm.mips.bnz.w(<4 x i32> %d.8.vecblend) |
| %tobool = icmp eq i32 %2, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bnz.w(<4 x i32>) |
| |
| define i32 @_Z6bnz_64Dv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0 |
| %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1 |
| %0 = tail call i32 @llvm.mips.bnz.d(<2 x i64> %d.8.vec.insert) |
| %tobool = icmp eq i32 %0, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bnz.d(<2 x i64>) |
| |
| define i32 @_Z6bnz_64_vDv2_x(i64 inreg %d.coerce0, i64 inreg %d.coerce1) { |
| entry: |
| %d.0.vec.insert = insertelement <2 x i64> undef, i64 %d.coerce0, i32 0 |
| %d.8.vec.insert = insertelement <2 x i64> %d.0.vec.insert, i64 %d.coerce1, i32 1 |
| %d.16.vec.insert = bitcast <2 x i64> %d.8.vec.insert to <16 x i8> |
| %0 = tail call i32 @llvm.mips.bnz.v(<16 x i8> %d.16.vec.insert) |
| %tobool = icmp eq i32 %0, 0 |
| br i1 %tobool, label %return, label %if.then |
| |
| if.then: |
| tail call void asm sideeffect ".space 810680", "~{$1}"() |
| br label %return |
| |
| return: |
| %retval.0 = phi i32 [ 1, %if.then ], [ 0, %entry ] |
| ret i32 %retval.0 |
| } |
| |
| declare i32 @llvm.mips.bnz.v(<16 x i8>) |
| |
| ... |
| --- |
| name: _Z4bz_8Dv16_a |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z4bz_8Dv16_a |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_B killed renamable $w0, 27 |
| ; MSA: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; MSA: BNZ_B $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z4bz_8Dv16_a |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_B killed renamable $w0, 27 |
| ; PIC: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; PIC: BNZ_B $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_B killed renamable $w0, 27 |
| renamable $w0 = SHF_W killed renamable $w0, 177 |
| BZ_B killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z5bz_16Dv8_s |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z5bz_16Dv8_s |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_H killed renamable $w0, 27 |
| ; MSA: BNZ_H $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z5bz_16Dv8_s |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_H killed renamable $w0, 27 |
| ; PIC: BNZ_H $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_H killed renamable $w0, 27 |
| BZ_H killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z5bz_32Dv4_i |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z5bz_32Dv4_i |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; MSA: BNZ_W $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z5bz_32Dv4_i |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; PIC: BNZ_W $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_W killed renamable $w0, 177 |
| BZ_W killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z5bz_64Dv2_x |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z5bz_64Dv2_x |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: BNZ_D $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z5bz_64Dv2_x |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: BNZ_D $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| BZ_D killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z5bz_64_vDv2_x |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z5bz_64_vDv2_x |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: BNZ_V $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z5bz_64_vDv2_x |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: BNZ_V $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| BZ_V killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z5bnz_8Dv16_a |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z5bnz_8Dv16_a |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_B killed renamable $w0, 27 |
| ; MSA: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; MSA: BZ_B $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z5bnz_8Dv16_a |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_B killed renamable $w0, 27 |
| ; PIC: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; PIC: BZ_B $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_B killed renamable $w0, 27 |
| renamable $w0 = SHF_W killed renamable $w0, 177 |
| BNZ_B killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z6bnz_16Dv8_s |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z6bnz_16Dv8_s |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_H killed renamable $w0, 27 |
| ; MSA: BZ_H $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z6bnz_16Dv8_s |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_H killed renamable $w0, 27 |
| ; PIC: BZ_H $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_H killed renamable $w0, 27 |
| BNZ_H killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z6bnz_32Dv4_i |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z6bnz_32Dv4_i |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; MSA: BZ_W $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z6bnz_32Dv4_i |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: renamable $w0 = SHF_W killed renamable $w0, 177 |
| ; PIC: BZ_W $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| renamable $w0 = SHF_W killed renamable $w0, 177 |
| BNZ_W killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z6bnz_64Dv2_x |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z6bnz_64Dv2_x |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: BZ_D $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z6bnz_64Dv2_x |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: BZ_D $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| BNZ_D killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |
| --- |
| name: _Z6bnz_64_vDv2_x |
| alignment: 3 |
| exposesReturnsTwice: false |
| legalized: false |
| regBankSelected: false |
| selected: false |
| failedISel: false |
| tracksRegLiveness: true |
| registers: |
| liveins: |
| - { reg: '$a0_64', virtual-reg: '' } |
| - { reg: '$a1_64', virtual-reg: '' } |
| frameInfo: |
| isFrameAddressTaken: false |
| isReturnAddressTaken: false |
| hasStackMap: false |
| hasPatchPoint: false |
| stackSize: 0 |
| offsetAdjustment: 0 |
| maxAlignment: 1 |
| adjustsStack: false |
| hasCalls: false |
| stackProtector: '' |
| maxCallFrameSize: 0 |
| hasOpaqueSPAdjustment: false |
| hasVAStart: false |
| hasMustTailInVarArgFunc: false |
| localFrameSize: 0 |
| savePoint: '' |
| restorePoint: '' |
| fixedStack: |
| stack: |
| constants: |
| body: | |
| ; MSA-LABEL: name: _Z6bnz_64_vDv2_x |
| ; MSA: bb.0.entry: |
| ; MSA: successors: %bb.2(0x40000000), %bb.1(0x40000000) |
| ; MSA: renamable $w0 = LDI_B 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; MSA: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; MSA: BZ_V $w0, %bb.2, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.1.entry: |
| ; MSA: successors: %bb.3(0x80000000) |
| ; MSA: J %bb.3, implicit-def $at { |
| ; MSA: NOP |
| ; MSA: } |
| ; MSA: bb.2.if.then: |
| ; MSA: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 1 |
| ; MSA: } |
| ; MSA: bb.3: |
| ; MSA: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; MSA: renamable $v0 = ADDiu $zero, 0 |
| ; MSA: } |
| ; PIC-LABEL: name: _Z6bnz_64_vDv2_x |
| ; PIC: bb.0.entry: |
| ; PIC: successors: %bb.3(0x40000000), %bb.1(0x40000000) |
| ; PIC: renamable $w0 = LDI_B 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| ; PIC: renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| ; PIC: BZ_V $w0, %bb.3, implicit-def $at { |
| ; PIC: NOP |
| ; PIC: } |
| ; PIC: bb.1.entry: |
| ; PIC: successors: %bb.2(0x80000000) |
| ; PIC: $sp_64 = DADDiu $sp_64, -16 |
| ; PIC: SD $ra_64, $sp_64, 0 |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $zero_64, target-flags(mips-abs-hi) %bb.4, %bb.2 |
| ; PIC: $at_64 = DSLL $at_64, 16 |
| ; PIC: BAL_BR %bb.2, implicit-def $ra { |
| ; PIC: $at_64 = LONG_BRANCH_DADDiu $at_64, target-flags(mips-abs-lo) %bb.4, %bb.2 |
| ; PIC: } |
| ; PIC: bb.2.entry: |
| ; PIC: successors: %bb.4(0x80000000) |
| ; PIC: $at_64 = DADDu $ra_64, $at_64 |
| ; PIC: $ra_64 = LD $sp_64, 0 |
| ; PIC: JR64 $at_64 { |
| ; PIC: $sp_64 = DADDiu $sp_64, 16 |
| ; PIC: } |
| ; PIC: bb.3.if.then: |
| ; PIC: INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 1 |
| ; PIC: } |
| ; PIC: bb.4: |
| ; PIC: PseudoReturn64 undef $ra_64, implicit killed $v0 { |
| ; PIC: renamable $v0 = ADDiu $zero, 0 |
| ; PIC: } |
| bb.0.entry: |
| successors: %bb.1(0x40000000), %bb.2(0x40000000) |
| liveins: $a0_64, $a1_64 |
| |
| renamable $w0 = LDI_B 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a0_64, 0 |
| renamable $w0 = INSERT_D killed renamable $w0, killed renamable $a1_64, 1 |
| BNZ_V killed renamable $w0, %bb.2, implicit-def dead $at |
| |
| bb.1.if.then: |
| INLINEASM &".space 810680", 1, 12, implicit-def dead early-clobber $at |
| renamable $v0 = ADDiu $zero, 1 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| bb.2: |
| renamable $v0 = ADDiu $zero, 0 |
| PseudoReturn64 undef $ra_64, implicit killed $v0 |
| |
| ... |