# 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> %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> %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> %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> %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> %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> %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> %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> %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> %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> %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> %d.8.vecblend = shufflevector <16 x i8> %d.8.vec.expand, <16 x i8> %d.0.vec.expand, <16 x i32> %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> %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> %d.8.vecblend = shufflevector <8 x i16> %d.8.vec.expand, <8 x i16> %d.0.vec.expand, <8 x i32> %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> %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> %d.8.vecblend = shufflevector <4 x i32> %d.8.vec.expand, <4 x i32> %d.0.vec.expand, <4 x i32> %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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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: 8 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 /* sideeffect attdialect */, 12 /* clobber */, 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 /* sideeffect attdialect */, 12 /* clobber */, 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 ...