[TableGen] Complete the support for artificial registers (#183371)
Artificial registers were added in
eb0c510ecde667cd911682cc1e855f73f341d134
as a means of giving super-registers heavier weights than that
of their subregisters, even when they only contain a single
physical subregister.
Artifical registers thus do exist in code and participate in
register unit weight calculations, but are not supposed to be
available for register allocation.
This patch completes the support for artificial registers to:
- Ignore artificial registers when joining register unit uber
sets. Artificial registers may be members of classes that
together include registers and their sub-registers, making it
impossible to compute normalised weights for uber sets they
belong to.
We have a use case downstream relying on this being supported,
which allows to avoid introducing a large number of additional
register classes.
- Not generate purely artificial register class intersections.
It is critical not to have such classes, as the common LLVM
codegen infrastructure will try to use them to constrain
classes of virtual registers instead of producing COPYs
whenever both the source and target register classes contain
the same artificial registers.
- Not generate sub-classes where classes with the same
non-artificial members already exist. This is mostly for
convenience. For example, the HI16-capable subset of AMDGPU's
AV_32 is VGPR_32, except VGPR_32 also contains the artificial
staging registers. If the staging registers are not ignored,
we'll end up having an additional generated register class,
AV_32_with_hi16_in_VGPR_16, -- harmless, but also useless.
Eliminates a few inferred AMDGPU register classes:
- VS_32_with_hi16
- VS_32_Lo256_with_hi16
- VS_32_Lo128_with_hi16
- VRegOrLds_32_and_VS_32_Lo256
- VRegOrLds_32_and_VS_32_Lo128
- SRegOrLds_32_and_VRegOrLds_32
Causes no register class changes for other targets.
This commit is contained in:
parent
c2e22e3b79
commit
21c1ba16ed
@ -66,7 +66,7 @@ define amdgpu_kernel void @asm_simple_agpr_clobber() {
|
||||
define i32 @asm_vgpr_early_clobber() {
|
||||
; CHECK-LABEL: name: asm_vgpr_early_clobber
|
||||
; CHECK: bb.1 (%ir-block.0):
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 7; v_mov_b32 $1, 7", 1 /* sideeffect attdialect */, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %8, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %9, !1
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 7; v_mov_b32 $1, 7", 1 /* sideeffect attdialect */, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %8, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %9, !1
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY %9
|
||||
; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s32) = G_ADD [[COPY]], [[COPY1]]
|
||||
@ -94,7 +94,7 @@ entry:
|
||||
define i32 @test_single_vgpr_output() nounwind {
|
||||
; CHECK-LABEL: name: test_single_vgpr_output
|
||||
; CHECK: bb.1.entry:
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 7", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %8
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 7", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %8
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -106,7 +106,7 @@ entry:
|
||||
define i32 @test_single_sgpr_output_s32() nounwind {
|
||||
; CHECK-LABEL: name: test_single_sgpr_output_s32
|
||||
; CHECK: bb.1.entry:
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1835018 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1572874 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -119,7 +119,7 @@ entry:
|
||||
define float @test_multiple_register_outputs_same() #0 {
|
||||
; CHECK-LABEL: name: test_multiple_register_outputs_same
|
||||
; CHECK: bb.1 (%ir-block.0):
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0; v_mov_b32 $1, 1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %8, 1245194 /* regdef:VGPR_32 */, def %9
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0; v_mov_b32 $1, 1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %8, 1179658 /* regdef:VGPR_32 */, def %9
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY %9
|
||||
; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s32) = G_FADD [[COPY]], [[COPY1]]
|
||||
@ -136,7 +136,7 @@ define float @test_multiple_register_outputs_same() #0 {
|
||||
define double @test_multiple_register_outputs_mixed() #0 {
|
||||
; CHECK-LABEL: name: test_multiple_register_outputs_mixed
|
||||
; CHECK: bb.1 (%ir-block.0):
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0; v_add_f64 $1, 0, 0", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %8, 2818058 /* regdef:VReg_64 */, def %9
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0; v_add_f64 $1, 0, 0", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %8, 2424842 /* regdef:VReg_64 */, def %9
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY %9
|
||||
; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](s64)
|
||||
@ -171,7 +171,7 @@ define amdgpu_kernel void @test_input_vgpr_imm() {
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
|
||||
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[C]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 v0, $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 v0, $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
call void asm sideeffect "v_mov_b32 v0, $0", "v"(i32 42)
|
||||
ret void
|
||||
@ -185,7 +185,7 @@ define amdgpu_kernel void @test_input_sgpr_imm() {
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9
|
||||
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY [[C]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 s0, $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 s0, $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
call void asm sideeffect "s_mov_b32 s0, $0", "s"(i32 42)
|
||||
ret void
|
||||
@ -212,7 +212,7 @@ define float @test_input_vgpr(i32 %src) nounwind {
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"v_add_f32 $0, 1.0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %9, 1245193 /* reguse:VGPR_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"v_add_f32 $0, 1.0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %9, 1179657 /* reguse:VGPR_32 */, [[COPY1]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY %9
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY2]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -227,7 +227,7 @@ define i32 @test_memory_constraint(ptr addrspace(3) %a) nounwind {
|
||||
; CHECK-NEXT: liveins: $vgpr0
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
|
||||
; CHECK-NEXT: INLINEASM &"ds_read_b32 $0, $1", 8 /* mayload attdialect */, 1245194 /* regdef:VGPR_32 */, def %9, 262158 /* mem:m */, [[COPY]](p3)
|
||||
; CHECK-NEXT: INLINEASM &"ds_read_b32 $0, $1", 8 /* mayload attdialect */, 1179658 /* regdef:VGPR_32 */, def %9, 262158 /* mem:m */, [[COPY]](p3)
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY %9
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY1]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -244,7 +244,7 @@ define i32 @test_vgpr_matching_constraint(i32 %a) nounwind {
|
||||
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
|
||||
; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[AND]](s32)
|
||||
; CHECK-NEXT: INLINEASM &";", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %11, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &";", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %11, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3)
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY %11
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY2]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -256,13 +256,13 @@ define i32 @test_vgpr_matching_constraint(i32 %a) nounwind {
|
||||
define i32 @test_sgpr_matching_constraint() nounwind {
|
||||
; CHECK-LABEL: name: test_sgpr_matching_constraint
|
||||
; CHECK: bb.1.entry:
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1835018 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1572874 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 8", 0 /* attdialect */, 1835018 /* regdef:SReg_32 */, def %10
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 8", 0 /* attdialect */, 1572874 /* regdef:SReg_32 */, def %10
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY %10
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:sreg_32 = COPY [[COPY1]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"s_add_u32 $0, $1, $2", 0 /* attdialect */, 1835018 /* regdef:SReg_32 */, def %12, 1835017 /* reguse:SReg_32 */, [[COPY2]], 2147483657 /* reguse tiedto:$0 */, [[COPY3]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"s_add_u32 $0, $1, $2", 0 /* attdialect */, 1572874 /* regdef:SReg_32 */, def %12, 1572873 /* reguse:SReg_32 */, [[COPY2]], 2147483657 /* reguse tiedto:$0 */, [[COPY3]](tied-def 3)
|
||||
; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY %12
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY4]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
@ -285,7 +285,7 @@ define void @test_many_matching_constraints(i32 %a, i32 %b, i32 %c) nounwind {
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[COPY2]](s32)
|
||||
; CHECK-NEXT: [[COPY4:%[0-9]+]]:vgpr_32 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: [[COPY5:%[0-9]+]]:vgpr_32 = COPY [[COPY1]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"; ", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %11, 1245194 /* regdef:VGPR_32 */, def %12, 1245194 /* regdef:VGPR_32 */, def %13, 2147483657 /* reguse tiedto:$0 */, [[COPY3]](tied-def 3), 2147614729 /* reguse tiedto:$2 */, [[COPY4]](tied-def 7), 2147549193 /* reguse tiedto:$1 */, [[COPY5]](tied-def 5)
|
||||
; CHECK-NEXT: INLINEASM &"; ", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %11, 1179658 /* regdef:VGPR_32 */, def %12, 1179658 /* regdef:VGPR_32 */, def %13, 2147483657 /* reguse tiedto:$0 */, [[COPY3]](tied-def 3), 2147614729 /* reguse tiedto:$2 */, [[COPY4]](tied-def 7), 2147549193 /* reguse tiedto:$1 */, [[COPY5]](tied-def 5)
|
||||
; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY %11
|
||||
; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY %12
|
||||
; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY %13
|
||||
@ -306,10 +306,10 @@ define void @test_many_matching_constraints(i32 %a, i32 %b, i32 %c) nounwind {
|
||||
define i32 @test_sgpr_to_vgpr_move_matching_constraint() nounwind {
|
||||
; CHECK-LABEL: name: test_sgpr_to_vgpr_move_matching_constraint
|
||||
; CHECK: bb.1.entry:
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1835018 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: INLINEASM &"s_mov_b32 $0, 7", 0 /* attdialect */, 1572874 /* regdef:SReg_32 */, def %8
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY %8
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]](s32)
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %10, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %10, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3)
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY %10
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[COPY2]](s32)
|
||||
; CHECK-NEXT: SI_RETURN implicit $vgpr0
|
||||
|
||||
@ -24,7 +24,7 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)
|
||||
; CHECK-NEXT: [[FMUL:%[0-9]+]]:vgpr(s32) = G_FMUL [[COPY]], [[COPY1]]
|
||||
; CHECK-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_FCONSTANT float 1.000000e+00
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %5(s32)
|
||||
; CHECK-NEXT: INLINEASM &"v_mov_b32 $0, 0", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %5(s32)
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[C1]](s32)
|
||||
; CHECK-NEXT: [[AMDGPU_FMED3_:%[0-9]+]]:vgpr(s32) = nnan G_AMDGPU_FMED3 [[FMUL]], %5, [[COPY2]]
|
||||
; CHECK-NEXT: $vgpr0 = COPY [[AMDGPU_FMED3_]](s32)
|
||||
@ -33,7 +33,7 @@ body: |
|
||||
%2:vgpr(s32) = COPY %1(s32)
|
||||
%3:vgpr(s32) = G_FMUL %0, %2
|
||||
%4:sgpr(s32) = G_FCONSTANT float 1.000000e+00
|
||||
INLINEASM &"v_mov_b32 $0, 0", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %5:vgpr_32
|
||||
INLINEASM &"v_mov_b32 $0, 0", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %5:vgpr_32
|
||||
%6:vgpr(s32) = COPY %4(s32)
|
||||
%7:vgpr(s32) = nnan G_AMDGPU_FMED3 %3(s32), %5(s32), %6(s32)
|
||||
$vgpr0 = COPY %7(s32)
|
||||
|
||||
@ -68,7 +68,7 @@ body: |
|
||||
; CHECK-NEXT: successors: %bb.3(0x04000000), %bb.7(0x7c000000)
|
||||
; CHECK-NEXT: liveins: $vcc_hi, $vcc_lo, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29, $sgpr30, $sgpr31, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $sgpr43, $sgpr44, $sgpr45, $sgpr46, $sgpr47, $sgpr48, $sgpr49, $sgpr50, $sgpr51, $sgpr52, $sgpr53, $sgpr54, $sgpr55, $sgpr56, $sgpr57, $sgpr58, $sgpr59, $sgpr60, $sgpr61, $sgpr62, $sgpr63, $sgpr64, $sgpr65, $sgpr66, $sgpr67, $sgpr68, $sgpr69, $sgpr70, $sgpr71, $sgpr72, $sgpr73, $sgpr74, $sgpr75, $sgpr76, $sgpr77, $sgpr78, $sgpr79, $sgpr80, $sgpr81, $sgpr82, $sgpr83, $sgpr84, $sgpr85, $sgpr86, $sgpr87, $sgpr88, $sgpr89, $sgpr90, $sgpr91, $sgpr92, $sgpr93, $sgpr94, $sgpr95, $sgpr96, $sgpr97, $sgpr98, $sgpr99, $sgpr100, $sgpr101, $vgpr0, $vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1835018 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
; CHECK-NEXT: INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1572874 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
; CHECK-NEXT: S_CMP_LG_U32 killed renamable $sgpr4, 0, implicit-def $scc
|
||||
; CHECK-NEXT: S_CBRANCH_SCC0 %bb.3, implicit killed $scc
|
||||
; CHECK-NEXT: {{ $}}
|
||||
@ -149,7 +149,7 @@ body: |
|
||||
successors: %bb.3(0x04000000), %bb.2(0x7c000000)
|
||||
liveins: $vcc_hi, $vcc_lo, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29, $sgpr30, $sgpr31, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $sgpr43, $sgpr44, $sgpr45, $sgpr46, $sgpr47, $sgpr48, $sgpr49, $sgpr50, $sgpr51, $sgpr52, $sgpr53, $sgpr54, $sgpr55, $sgpr56, $sgpr57, $sgpr58, $sgpr59, $sgpr60, $sgpr61, $sgpr62, $sgpr63, $sgpr64, $sgpr65, $sgpr66, $sgpr67, $sgpr68, $sgpr69, $sgpr70, $sgpr71, $sgpr72, $sgpr73, $sgpr74, $sgpr75, $sgpr76, $sgpr77, $sgpr78, $sgpr79, $sgpr80, $sgpr81, $sgpr82, $sgpr83, $sgpr84, $sgpr85, $sgpr86, $sgpr87, $sgpr88, $sgpr89, $sgpr90, $sgpr91, $sgpr92, $sgpr93, $sgpr94, $sgpr95, $sgpr96, $sgpr97, $sgpr98, $sgpr99, $sgpr100, $sgpr101, $vgpr0, $vgpr1
|
||||
|
||||
INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1835018 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1572874 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
S_CMP_LG_U32 killed renamable $sgpr4, 0, implicit-def $scc
|
||||
S_CBRANCH_SCC1 %bb.2, implicit killed $scc
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@ body: |
|
||||
; CHECK-NEXT: successors: %bb.3(0x04000000), %bb.7(0x7c000000)
|
||||
; CHECK-NEXT: liveins: $vcc_hi, $vcc_lo, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29, $sgpr30, $sgpr31, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $sgpr43, $sgpr44, $sgpr45, $sgpr46, $sgpr47, $sgpr48, $sgpr49, $sgpr50, $sgpr51, $sgpr52, $sgpr53, $sgpr54, $sgpr55, $sgpr56, $sgpr57, $sgpr58, $sgpr59, $sgpr60, $sgpr61, $sgpr62, $sgpr63, $sgpr64, $sgpr65, $sgpr66, $sgpr67, $sgpr68, $sgpr69, $sgpr70, $sgpr71, $sgpr72, $sgpr73, $sgpr74, $sgpr75, $sgpr76, $sgpr77, $sgpr78, $sgpr79, $sgpr80, $sgpr81, $sgpr82, $sgpr83, $sgpr84, $sgpr85, $sgpr86, $sgpr87, $sgpr88, $sgpr89, $sgpr90, $sgpr91, $sgpr92, $sgpr93, $sgpr94, $sgpr95, $sgpr96, $sgpr97, $sgpr98, $sgpr99, $sgpr100, $sgpr101, $vgpr0, $vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1835018 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
; CHECK-NEXT: INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1572874 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
; CHECK-NEXT: S_CMP_LG_U32 killed renamable $sgpr4, 0, implicit-def $scc
|
||||
; CHECK-NEXT: S_CBRANCH_SCC0 %bb.3, implicit killed $scc
|
||||
; CHECK-NEXT: {{ $}}
|
||||
@ -151,7 +151,7 @@ body: |
|
||||
successors: %bb.3(0x04000000), %bb.2(0x7c000000)
|
||||
liveins: $vcc_hi, $vcc_lo, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $sgpr14, $sgpr15, $sgpr16, $sgpr17, $sgpr18, $sgpr19, $sgpr20, $sgpr21, $sgpr22, $sgpr23, $sgpr24, $sgpr25, $sgpr26, $sgpr27, $sgpr28, $sgpr29, $sgpr30, $sgpr31, $sgpr34, $sgpr35, $sgpr36, $sgpr37, $sgpr38, $sgpr39, $sgpr40, $sgpr41, $sgpr42, $sgpr43, $sgpr44, $sgpr45, $sgpr46, $sgpr47, $sgpr48, $sgpr49, $sgpr50, $sgpr51, $sgpr52, $sgpr53, $sgpr54, $sgpr55, $sgpr56, $sgpr57, $sgpr58, $sgpr59, $sgpr60, $sgpr61, $sgpr62, $sgpr63, $sgpr64, $sgpr65, $sgpr66, $sgpr67, $sgpr68, $sgpr69, $sgpr70, $sgpr71, $sgpr72, $sgpr73, $sgpr74, $sgpr75, $sgpr76, $sgpr77, $sgpr78, $sgpr79, $sgpr80, $sgpr81, $sgpr82, $sgpr83, $sgpr84, $sgpr85, $sgpr86, $sgpr87, $sgpr88, $sgpr89, $sgpr90, $sgpr91, $sgpr92, $sgpr93, $sgpr94, $sgpr95, $sgpr96, $sgpr97, $sgpr98, $sgpr99, $sgpr100, $sgpr101, $vgpr0, $vgpr1
|
||||
|
||||
INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1835018 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
INLINEASM &"v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64\0A v_nop_e64", 1 /* sideeffect attdialect */, 1572874 /* regdef:SReg_32 */, def renamable $sgpr4
|
||||
S_CMP_LG_U32 killed renamable $sgpr4, 0, implicit-def $scc
|
||||
S_CBRANCH_SCC1 %bb.2, implicit killed $scc
|
||||
|
||||
|
||||
@ -20,13 +20,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1:areg_64 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64 = COPY %0
|
||||
%2.sub1:areg_64 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -45,13 +45,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64_align2 = COPY %0
|
||||
%2.sub1:areg_64_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -72,7 +72,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub1:areg_96 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub2:areg_96 = COPY [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY3]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
@ -80,7 +80,7 @@ body: |
|
||||
undef %3.sub0:areg_96 = COPY %0
|
||||
%3.sub1:areg_96 = COPY %1
|
||||
%3.sub2:areg_96 = COPY %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -101,7 +101,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub1:areg_96_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
@ -109,7 +109,7 @@ body: |
|
||||
undef %3.sub0:areg_96_align2 = COPY %0
|
||||
%3.sub1:areg_96_align2 = COPY %1
|
||||
%3.sub2:areg_96_align2 = COPY %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -128,13 +128,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0_sub1:areg_128 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub2_sub3:areg_128 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64 = COPY $vgpr0_vgpr1
|
||||
%1:vreg_64 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128 = COPY %0
|
||||
%2.sub2_sub3:areg_128 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -153,13 +153,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub2_sub3:areg_128_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64 = COPY $vgpr0_vgpr1
|
||||
%1:vreg_64 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128_align2 = COPY %0
|
||||
%2.sub2_sub3:areg_128_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -178,13 +178,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr_32 = COPY $sgpr9
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:sgpr_32 = COPY $sgpr8
|
||||
%1:sgpr_32 = COPY $sgpr9
|
||||
undef %2.sub0:areg_64_align2 = COPY %0
|
||||
%2.sub1:areg_64_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -203,13 +203,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1_sub2:areg_96 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vreg_64 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96 = COPY %0
|
||||
%2.sub1_sub2:areg_96 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -228,13 +228,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1_sub2:areg_96_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vreg_64 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96_align2 = COPY %0
|
||||
%2.sub1_sub2:areg_96_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -253,13 +253,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0_sub1:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub2:areg_96 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64 = COPY $vgpr0_vgpr1
|
||||
%1:vgpr_32 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96 = COPY %0
|
||||
%2.sub2:areg_96 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -278,13 +278,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0_sub1:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64 = COPY $vgpr0_vgpr1
|
||||
%1:vgpr_32 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96_align2 = COPY %0
|
||||
%2.sub2:areg_96_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -302,12 +302,12 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %2.sub0:areg_64 = COPY %0
|
||||
%2.sub1:areg_64 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -326,13 +326,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64_align2 = COPY %0
|
||||
%2.sub1:areg_64_align2 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -350,12 +350,12 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_96 = COPY %0
|
||||
%1.sub1:areg_96 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -373,12 +373,12 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_96_align2 = COPY %0
|
||||
%1.sub1:areg_96_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -398,14 +398,14 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_128 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_128 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub3:areg_128 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_128 = COPY %0
|
||||
%1.sub1:areg_128 = COPY %0
|
||||
%1.sub2:areg_128 = COPY %0
|
||||
%1.sub3:areg_128 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -425,14 +425,14 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_128_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_128_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub3:areg_128_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_128_align2 = COPY %0
|
||||
%1.sub1:areg_128_align2 = COPY %0
|
||||
%1.sub2:areg_128_align2 = COPY %0
|
||||
%1.sub3:areg_128_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -451,15 +451,15 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1:areg_64 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
%1:vgpr_32 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64 = COPY %0
|
||||
%2.sub1:areg_64 = COPY %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 1245193 /* reguse:VGPR_32 */, killed %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 1179657 /* reguse:VGPR_32 */, killed %0
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -477,14 +477,14 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_64 = COPY %0
|
||||
%1.sub1:areg_64 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 1245193 /* reguse:VGPR_32 */, killed %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 1179657 /* reguse:VGPR_32 */, killed %0
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -503,16 +503,16 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 2818057 /* reguse:VReg_64 */, [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 2424841 /* reguse:VReg_64 */, [[COPY]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = COPY $vgpr0
|
||||
undef %1.sub0:areg_64 = COPY %0
|
||||
%1.sub1:areg_64 = COPY %0
|
||||
undef %2.sub0:vreg_64 = COPY %0
|
||||
%2.sub1:vreg_64 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 2818057 /* reguse:VReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 2424841 /* reguse:VReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -533,13 +533,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_64 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
%0.sub1:vreg_64 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64 = COPY %0.sub0
|
||||
%2.sub1:areg_64 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -558,13 +558,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_64 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
%0.sub1:vreg_64 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64_align2 = COPY %0.sub0
|
||||
%2.sub1:areg_64_align2 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -585,7 +585,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 =COPY $vgpr0
|
||||
%0.sub1:vreg_96 = COPY $vgpr1
|
||||
@ -593,7 +593,7 @@ body: |
|
||||
undef %3.sub0:areg_96 = COPY %0.sub0
|
||||
%3.sub1:areg_96 = COPY %0.sub1
|
||||
%3.sub2:areg_96 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -614,7 +614,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 =COPY $vgpr0
|
||||
%0.sub1:vreg_96 = COPY $vgpr1
|
||||
@ -622,7 +622,7 @@ body: |
|
||||
undef %3.sub0:areg_96_align2 = COPY %0.sub0
|
||||
%3.sub1:areg_96_align2 = COPY %0.sub1
|
||||
%3.sub2:areg_96_align2 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -641,13 +641,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2_sub3:vreg_128 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_128 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2_sub3:areg_128 = COPY [[COPY]].sub2_sub3
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_128 =COPY $vgpr0_vgpr1
|
||||
%0.sub2_sub3:vreg_128 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128 = COPY %0.sub0_sub1
|
||||
%2.sub2_sub3:areg_128 = COPY %0.sub2_sub3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -668,13 +668,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_128 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2_sub3:areg_128_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_128 =COPY $vgpr0_vgpr1
|
||||
%0.sub1:vreg_128 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128_align2 = COPY %0.sub0
|
||||
%2.sub2_sub3:areg_128_align2 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -693,13 +693,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:sreg_64 = COPY $sgpr9
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:sreg_64 = COPY $sgpr8
|
||||
%0.sub1:sreg_64 = COPY $sgpr9
|
||||
undef %2.sub0:areg_64_align2 = COPY %0.sub0
|
||||
%2.sub1:areg_64_align2 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -718,13 +718,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1_sub2:areg_96 = COPY [[COPY]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 =COPY $vgpr0
|
||||
%0.sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96 = COPY %0.sub0
|
||||
%2.sub1_sub2:areg_96 = COPY %0.sub1_sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -743,13 +743,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1_sub2:areg_96_align2 = COPY [[COPY]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 =COPY $vgpr0
|
||||
%0.sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96_align2 = COPY %0.sub0
|
||||
%2.sub1_sub2:areg_96_align2 = COPY %0.sub1_sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -768,13 +768,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2:vreg_96 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_96 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_96 = COPY $vgpr0_vgpr1
|
||||
%0.sub2:vreg_96 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96 = COPY %0.sub0_sub1
|
||||
%2.sub2:areg_96 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -793,13 +793,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2:vreg_96 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_96_align2 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_96 = COPY $vgpr0_vgpr1
|
||||
%0.sub2:vreg_96 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96_align2 = COPY %0.sub0_sub1
|
||||
%2.sub2:areg_96_align2 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -817,12 +817,12 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY:%[0-9]+]].sub0:vreg_64 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
undef %2.sub0:areg_64 = COPY %0.sub0
|
||||
%2.sub1:areg_64 = COPY %0.sub0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -841,13 +841,13 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
undef %1.sub0:areg_96 = COPY %0.sub0
|
||||
%1.sub1:areg_96 = COPY %0.sub0
|
||||
%1.sub2:areg_96 = COPY %0.sub0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -865,12 +865,12 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY:%[0-9]+]].sub0:vreg_64 = COPY $vgpr0
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
undef %1.sub0:areg_96_align2 = COPY %0.sub0
|
||||
%1.sub1:areg_96_align2 = COPY %0.sub0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -890,14 +890,14 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_128 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_128 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub3:areg_128 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
undef %1.sub0:areg_128 = COPY %0.sub0
|
||||
%1.sub1:areg_128 = COPY %0.sub0
|
||||
%1.sub2:areg_128 = COPY %0.sub0
|
||||
%1.sub3:areg_128 = COPY %0.sub0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -917,14 +917,14 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_128_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_128_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub3:areg_128_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
undef %1.sub0:areg_128_align2 = COPY %0.sub0
|
||||
%1.sub1:areg_128_align2 = COPY %0.sub0
|
||||
%1.sub2:areg_128_align2 = COPY %0.sub0
|
||||
%1.sub3:areg_128_align2 = COPY %0.sub0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -943,13 +943,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_64 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64 = COPY $vgpr0
|
||||
%0.sub1:vreg_64 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64 = COPY %0.sub0
|
||||
%2.sub1:areg_64 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -968,13 +968,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:vreg_64_align2 = COPY $vgpr1
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_64_align2 = COPY $vgpr0
|
||||
%0.sub1:vreg_64_align2 = COPY $vgpr1
|
||||
undef %2.sub0:areg_64_align2 = COPY %0.sub0
|
||||
%2.sub1:areg_64_align2 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -995,7 +995,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 = COPY $vgpr0
|
||||
%0.sub1:vreg_96 = COPY $vgpr1
|
||||
@ -1003,7 +1003,7 @@ body: |
|
||||
undef %3.sub0:areg_96 = COPY %0.sub0
|
||||
%3.sub1:areg_96 = COPY %0.sub1
|
||||
%3.sub2:areg_96 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1024,7 +1024,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_96_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96_align2 = COPY $vgpr0
|
||||
%0.sub1:vreg_96_align2 = COPY $vgpr1
|
||||
@ -1032,7 +1032,7 @@ body: |
|
||||
undef %3.sub0:areg_96_align2 = COPY %0.sub0
|
||||
%3.sub1:areg_96_align2 = COPY %0.sub1
|
||||
%3.sub2:areg_96_align2 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1051,13 +1051,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2_sub3:vreg_128 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_128 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2_sub3:areg_128 = COPY [[COPY]].sub2_sub3
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_128 = COPY $vgpr0_vgpr1
|
||||
%0.sub2_sub3:vreg_128 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128 = COPY %0.sub0_sub1
|
||||
%2.sub2_sub3:areg_128 = COPY %0.sub2_sub3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1076,13 +1076,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2_sub3:vreg_128_align2 = COPY $vgpr2_vgpr3
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2_sub3:areg_128_align2 = COPY [[COPY]].sub2_sub3
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_128_align2 = COPY $vgpr0_vgpr1
|
||||
%0.sub2_sub3:vreg_128_align2 = COPY $vgpr2_vgpr3
|
||||
undef %2.sub0_sub1:areg_128_align2 = COPY %0.sub0_sub1
|
||||
%2.sub2_sub3:areg_128_align2 = COPY %0.sub2_sub3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1101,13 +1101,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1:sreg_64 = COPY $sgpr9
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_64_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1:areg_64_align2 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:sreg_64 = COPY $sgpr8
|
||||
%0.sub1:sreg_64 = COPY $sgpr9
|
||||
undef %2.sub0:areg_64_align2 = COPY %0.sub0
|
||||
%2.sub1:areg_64_align2 = COPY %0.sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1126,13 +1126,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1_sub2:areg_96 = COPY [[COPY]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 = COPY $vgpr0
|
||||
%0.sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96 = COPY %0.sub0
|
||||
%2.sub1_sub2:areg_96 = COPY %0.sub1_sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1150,13 +1150,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub0:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub1_sub2:areg_96 = COPY [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY2]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96 = COPY $vgpr0
|
||||
%0.sub1_sub2:vreg_96 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96 = COPY %0.sub2
|
||||
%2.sub1_sub2:areg_96 = COPY %0.sub0_sub1
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1176,13 +1176,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub1_sub2:vreg_96_align2 = COPY $vgpr1_vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0:areg_96_align2 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub1_sub2:areg_96_align2 = COPY [[COPY]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0:vreg_96_align2 = COPY $vgpr0
|
||||
%0.sub1_sub2:vreg_96_align2 = COPY $vgpr1_vgpr2
|
||||
undef %2.sub0:areg_96_align2 = COPY %0.sub0
|
||||
%2.sub1_sub2:areg_96_align2 = COPY %0.sub1_sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1201,13 +1201,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2:vreg_96 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_96 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_96 = COPY $vgpr0_vgpr1
|
||||
%0.sub2:vreg_96 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96 = COPY %0.sub0_sub1
|
||||
%2.sub2:areg_96 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1226,13 +1226,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2:vreg_96_align2 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_96_align2 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_96_align2 = COPY $vgpr0_vgpr1
|
||||
%0.sub2:vreg_96_align2 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96_align2 = COPY %0.sub0_sub1
|
||||
%2.sub2:areg_96_align2 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1251,13 +1251,13 @@ body: |
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub2:vreg_96 = COPY $vgpr2
|
||||
; CHECK-NEXT: undef [[COPY1:%[0-9]+]].sub0_sub1:areg_96_align2 = COPY [[COPY]].sub0_sub1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]].sub2:areg_96_align2 = COPY [[COPY]].sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
undef %0.sub0_sub1:vreg_96 = COPY $vgpr0_vgpr1
|
||||
%0.sub2:vreg_96 = COPY $vgpr2
|
||||
undef %2.sub0_sub1:areg_96_align2 = COPY %0.sub0_sub1
|
||||
%2.sub2:areg_96_align2 = COPY %0.sub2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1274,11 +1274,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_64 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64 = COPY $vgpr0_vgpr1
|
||||
%2:areg_64 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3407881 /* reguse:AReg_64 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3014665 /* reguse:AReg_64 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1295,11 +1295,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_64_align2 = COPY $vgpr0_vgpr1
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_64_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr0_vgpr1
|
||||
%2:areg_64_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1316,11 +1316,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_96 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
|
||||
%3:areg_96 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5505033 /* reguse:AReg_96 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5111817 /* reguse:AReg_96 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1337,11 +1337,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_96_align2 = COPY $vgpr0_vgpr1_vgpr2
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_96_align2 = COPY $vgpr0_vgpr1_vgpr2
|
||||
%3:areg_96_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5832713 /* reguse:AReg_96_Align2 */, %3
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 5439497 /* reguse:AReg_96_Align2 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1358,11 +1358,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_128 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
%2:areg_128 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7929865 /* reguse:AReg_128 */, killed %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 7536649 /* reguse:AReg_128 */, killed %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1379,11 +1379,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_128_align2 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_128_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_128_align2 = COPY $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
%2:areg_128_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1400,11 +1400,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr8_sgpr9
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_64_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:sreg_64 = COPY $sgpr8_sgpr9
|
||||
%2:areg_64_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -1421,11 +1421,11 @@ body: |
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:areg_96_align2 = COPY [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY1]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_96 = COPY $vgpr0_vgpr1_vgpr2
|
||||
%2:areg_96_align2 = COPY %0
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %2
|
||||
INLINEASM &"; use $0", 0 /* attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
|
||||
@ -20,10 +20,10 @@ body: |
|
||||
; CHECK-LABEL: name: foo1
|
||||
; CHECK: liveins: $vgpr0_vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %2.sub0, 1245195 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %2.sub0, 1179659 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1
|
||||
; CHECK-NEXT: FLAT_STORE_DWORDX2 $vgpr0_vgpr1, %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %0:vgpr_32, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %1:vgpr_32
|
||||
INLINEASM &"", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %0:vgpr_32, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %1:vgpr_32
|
||||
undef %2.sub0:vreg_64 = COPY killed %0
|
||||
%2.sub1:vreg_64 = COPY killed %1
|
||||
FLAT_STORE_DWORDX2 killed $vgpr0_vgpr1, killed %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
@ -41,10 +41,10 @@ body: |
|
||||
; CHECK-LABEL: name: foo2
|
||||
; CHECK: liveins: $vgpr0_vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1245195 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1, 1245194 /* regdef:VGPR_32 */, def undef %2.sub0
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1179659 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1, 1179658 /* regdef:VGPR_32 */, def undef %2.sub0
|
||||
; CHECK-NEXT: FLAT_STORE_DWORDX2 $vgpr0_vgpr1, %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"", 0 /* attdialect */, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %1:vgpr_32, 1245194 /* regdef:VGPR_32 */, def %0:vgpr_32
|
||||
INLINEASM &"", 0 /* attdialect */, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %1:vgpr_32, 1179658 /* regdef:VGPR_32 */, def %0:vgpr_32
|
||||
undef %2.sub0:vreg_64 = COPY killed %0
|
||||
%2.sub1:vreg_64 = COPY killed %1
|
||||
FLAT_STORE_DWORDX2 killed $vgpr0_vgpr1, killed %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
@ -62,10 +62,10 @@ body: |
|
||||
; CHECK-LABEL: name: foo3
|
||||
; CHECK: liveins: $vgpr0_vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %2.sub0, 1245195 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %2.sub0, 1179659 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1
|
||||
; CHECK-NEXT: FLAT_STORE_DWORDX2 $vgpr0_vgpr1, %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %1:vgpr_32, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %0:vgpr_32
|
||||
INLINEASM &"", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %1:vgpr_32, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %0:vgpr_32
|
||||
undef %2.sub0:vreg_64 = COPY killed %1
|
||||
%2.sub1:vreg_64 = COPY killed %0
|
||||
FLAT_STORE_DWORDX2 killed $vgpr0_vgpr1, killed %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
@ -83,10 +83,10 @@ body: |
|
||||
; CHECK-LABEL: name: foo4
|
||||
; CHECK: liveins: $vgpr0_vgpr1
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1245195 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1, 1245194 /* regdef:VGPR_32 */, def undef %2.sub0
|
||||
; CHECK-NEXT: INLINEASM &"", 0 /* attdialect */, 1179659 /* regdef-ec:VGPR_32 */, def undef early-clobber %2.sub1, 1179658 /* regdef:VGPR_32 */, def undef %2.sub0
|
||||
; CHECK-NEXT: FLAT_STORE_DWORDX2 $vgpr0_vgpr1, %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"", 0 /* attdialect */, 1245195 /* regdef-ec:VGPR_32 */, def early-clobber %0:vgpr_32, 1245194 /* regdef:VGPR_32 */, def %1:vgpr_32
|
||||
INLINEASM &"", 0 /* attdialect */, 1179659 /* regdef-ec:VGPR_32 */, def early-clobber %0:vgpr_32, 1179658 /* regdef:VGPR_32 */, def %1:vgpr_32
|
||||
undef %2.sub0:vreg_64 = COPY killed %1
|
||||
%2.sub1:vreg_64 = COPY killed %0
|
||||
FLAT_STORE_DWORDX2 killed $vgpr0_vgpr1, killed %2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64))
|
||||
|
||||
@ -370,7 +370,7 @@ body: |
|
||||
; HAZARD-LABEL: name: inline_sdwa_hazard
|
||||
; HAZARD: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $exec, $mode
|
||||
; HAZARD-NEXT: {{ $}}
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: S_NOP 0
|
||||
; HAZARD-NEXT: renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
; HAZARD-NEXT: S_ENDPGM 0
|
||||
@ -378,10 +378,10 @@ body: |
|
||||
; NOHAZARD-LABEL: name: inline_sdwa_hazard
|
||||
; NOHAZARD: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $exec, $mode
|
||||
; NOHAZARD-NEXT: {{ $}}
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
; NOHAZARD-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
S_ENDPGM 0
|
||||
...
|
||||
@ -397,17 +397,17 @@ body: |
|
||||
; HAZARD-NEXT: {{ $}}
|
||||
; HAZARD-NEXT: renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
; HAZARD-NEXT: S_NOP 0
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: S_ENDPGM 0
|
||||
;
|
||||
; NOHAZARD-LABEL: name: sdwa_inline_hazard
|
||||
; NOHAZARD: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $exec, $mode
|
||||
; NOHAZARD-NEXT: {{ $}}
|
||||
; NOHAZARD-NEXT: renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: S_ENDPGM 0
|
||||
renamable $vgpr0 = V_ADD_U16_sdwa 0, $vgpr1, 0, $vgpr2, 0, 1, 0, 3, 3, implicit $exec, implicit killed $vgpr0(tied-def 0)
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
S_ENDPGM 0
|
||||
...
|
||||
|
||||
@ -421,19 +421,19 @@ body: |
|
||||
; HAZARD-LABEL: name: inline_inline_hazard
|
||||
; HAZARD: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $exec, $mode
|
||||
; HAZARD-NEXT: {{ $}}
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: S_NOP 0
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; HAZARD-NEXT: S_ENDPGM 0
|
||||
;
|
||||
; NOHAZARD-LABEL: name: inline_inline_hazard
|
||||
; NOHAZARD: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $exec, $mode
|
||||
; NOHAZARD-NEXT: {{ $}}
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
; NOHAZARD-NEXT: S_ENDPGM 0
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0, 1245193 /* reguse:VGPR_32 */, $vgpr1
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0, 1179657 /* reguse:VGPR_32 */, $vgpr1
|
||||
S_ENDPGM 0
|
||||
...
|
||||
|
||||
|
||||
@ -1112,11 +1112,11 @@ body: |
|
||||
; GCN-NEXT: S_WAITCNT 0
|
||||
; GCN-NEXT: renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
||||
; GCN-NEXT: S_NOP 0
|
||||
; GCN-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, killed renamable $vgpr2
|
||||
; GCN-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, killed renamable $vgpr2
|
||||
; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31
|
||||
S_WAITCNT 0
|
||||
renamable $vgpr2 = V_CVT_SCALEF32_PK_FP4_F16_e64 8, killed $vgpr0, 0, killed $vgpr1, 4, killed $vgpr2, 0, implicit $mode, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, killed renamable $vgpr2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, killed renamable $vgpr2
|
||||
S_SETPC_B64_return undef $sgpr30_sgpr31
|
||||
...
|
||||
|
||||
|
||||
@ -486,7 +486,7 @@ body: |
|
||||
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55
|
||||
; CHECK-NEXT: S_NOP 0, implicit-def $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
|
||||
; CHECK-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY killed renamable $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15
|
||||
; CHECK-NEXT: INLINEASM &"; use $0 ", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, killed renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
|
||||
; CHECK-NEXT: INLINEASM &"; use $0 ", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, killed renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
|
||||
; CHECK-NEXT: S_ENDPGM 0
|
||||
bb.0:
|
||||
S_NOP 0, implicit-def $agpr0
|
||||
@ -516,7 +516,7 @@ body: |
|
||||
S_NOP 0, implicit-def $vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47
|
||||
S_NOP 0, implicit-def $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55
|
||||
S_NOP 0, implicit-def $vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63
|
||||
INLINEASM &"; use $0 ", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, %0:vreg_512_align2
|
||||
INLINEASM &"; use $0 ", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, %0:vreg_512_align2
|
||||
S_ENDPGM 0
|
||||
|
||||
...
|
||||
@ -1368,7 +1368,7 @@ body: |
|
||||
; CHECK-NEXT: renamable $vgpr0_vgpr1 = GLOBAL_LOAD_DWORDX2 undef renamable $vgpr0_vgpr1, 0, 0, implicit $exec :: (load (s64), addrspace 1)
|
||||
; CHECK-NEXT: early-clobber renamable $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33 = V_MFMA_F32_32X32X8F16_vgprcd_e64 $vgpr16_vgpr17, $vgpr16_vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: early-clobber renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_vgprcd_e64 $vgpr16_vgpr17, $vgpr16_vgpr17, $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, killed renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, killed renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15
|
||||
; CHECK-NEXT: S_CBRANCH_VCCNZ %bb.1, implicit $vcc
|
||||
; CHECK-NEXT: S_BRANCH %bb.2
|
||||
; CHECK-NEXT: {{ $}}
|
||||
@ -1408,7 +1408,7 @@ body: |
|
||||
undef %2.sub0_sub1:vreg_512_align2 = GLOBAL_LOAD_DWORDX2 undef %3:vreg_64_align2, 0, 0, implicit $exec :: (load (s64), addrspace 1)
|
||||
early-clobber %0:vreg_512_align2 = V_MFMA_F32_32X32X8F16_vgprcd_e64 %1, %1, %2, 0, 0, 0, implicit $mode, implicit $exec
|
||||
early-clobber %4:vreg_512_align2 = V_MFMA_F32_32X32X8F16_vgprcd_e64 %1, %1, %0, 0, 0, 0, implicit $mode, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, %4
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, %4
|
||||
S_CBRANCH_VCCNZ %bb.1, implicit $vcc
|
||||
S_BRANCH %bb.2
|
||||
|
||||
@ -1726,7 +1726,7 @@ body: |
|
||||
; CHECK-NEXT: renamable $vgpr0_vgpr1 = GLOBAL_LOAD_DWORDX2 undef renamable $vgpr0_vgpr1, 0, 0, implicit $exec :: (load (s64), addrspace 1)
|
||||
; CHECK-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = V_MFMA_F32_32X32X8F16_mac_vgprcd_e64 $vgpr16_vgpr17, $vgpr16_vgpr17, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: early-clobber renamable $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33 = V_MFMA_F32_32X32X8F16_vgprcd_e64 $vgpr16_vgpr17, $vgpr16_vgpr17, killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, renamable $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, renamable $vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33
|
||||
; CHECK-NEXT: S_CBRANCH_VCCNZ %bb.1, implicit $vcc
|
||||
; CHECK-NEXT: S_BRANCH %bb.2
|
||||
; CHECK-NEXT: {{ $}}
|
||||
@ -1763,7 +1763,7 @@ body: |
|
||||
undef %0.sub0_sub1:vreg_512_align2 = GLOBAL_LOAD_DWORDX2 undef %3:vreg_64_align2, 0, 0, implicit $exec :: (load (s64), addrspace 1)
|
||||
%0:vreg_512_align2 = V_MFMA_F32_32X32X8F16_mac_vgprcd_e64 %1, %1, %0, 0, 0, 0, implicit $mode, implicit $exec
|
||||
%4:vreg_512_align2 = V_MFMA_F32_32X32X8F16_vgprcd_e64 %1, %1, %0, 0, 0, 0, implicit $mode, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 39321609 /* reguse:VReg_512_Align2 */, %4
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 38928393 /* reguse:VReg_512_Align2 */, %4
|
||||
S_CBRANCH_VCCNZ %bb.1, implicit $vcc
|
||||
S_BRANCH %bb.2
|
||||
|
||||
|
||||
@ -8,16 +8,16 @@
|
||||
define amdgpu_kernel void @s_input_output_i128() {
|
||||
; GFX908-LABEL: name: s_input_output_i128
|
||||
; GFX908: bb.0 (%ir-block.0):
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 9764874 /* regdef:SGPR_128 */, def %13
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 9371658 /* regdef:SGPR_128 */, def %13
|
||||
; GFX908-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY %13
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 9764873 /* reguse:SGPR_128 */, [[COPY]]
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 9371657 /* reguse:SGPR_128 */, [[COPY]]
|
||||
; GFX908-NEXT: S_ENDPGM 0
|
||||
;
|
||||
; GFX90A-LABEL: name: s_input_output_i128
|
||||
; GFX90A: bb.0 (%ir-block.0):
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 9764874 /* regdef:SGPR_128 */, def %11
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 9371658 /* regdef:SGPR_128 */, def %11
|
||||
; GFX90A-NEXT: [[COPY:%[0-9]+]]:sgpr_128 = COPY %11
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 9764873 /* reguse:SGPR_128 */, [[COPY]]
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 9371657 /* reguse:SGPR_128 */, [[COPY]]
|
||||
; GFX90A-NEXT: S_ENDPGM 0
|
||||
%val = tail call i128 asm sideeffect "; def $0", "=s"()
|
||||
call void asm sideeffect "; use $0", "s"(i128 %val)
|
||||
@ -27,16 +27,16 @@ define amdgpu_kernel void @s_input_output_i128() {
|
||||
define amdgpu_kernel void @v_input_output_i128() {
|
||||
; GFX908-LABEL: name: v_input_output_i128
|
||||
; GFX908: bb.0 (%ir-block.0):
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7012362 /* regdef:VReg_128 */, def %13
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6619146 /* regdef:VReg_128 */, def %13
|
||||
; GFX908-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY %13
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 7012361 /* reguse:VReg_128 */, [[COPY]]
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 6619145 /* reguse:VReg_128 */, [[COPY]]
|
||||
; GFX908-NEXT: S_ENDPGM 0
|
||||
;
|
||||
; GFX90A-LABEL: name: v_input_output_i128
|
||||
; GFX90A: bb.0 (%ir-block.0):
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7340042 /* regdef:VReg_128_Align2 */, def %11
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6946826 /* regdef:VReg_128_Align2 */, def %11
|
||||
; GFX90A-NEXT: [[COPY:%[0-9]+]]:vreg_128_align2 = COPY %11
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 7340041 /* reguse:VReg_128_Align2 */, [[COPY]]
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 6946825 /* reguse:VReg_128_Align2 */, [[COPY]]
|
||||
; GFX90A-NEXT: S_ENDPGM 0
|
||||
%val = tail call i128 asm sideeffect "; def $0", "=v"()
|
||||
call void asm sideeffect "; use $0", "v"(i128 %val)
|
||||
@ -47,16 +47,16 @@ define amdgpu_kernel void @a_input_output_i128() {
|
||||
|
||||
; GFX908-LABEL: name: a_input_output_i128
|
||||
; GFX908: bb.0 (%ir-block.0):
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7929866 /* regdef:AReg_128 */, def %13
|
||||
; GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7536650 /* regdef:AReg_128 */, def %13
|
||||
; GFX908-NEXT: [[COPY:%[0-9]+]]:areg_128 = COPY %13
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 7929865 /* reguse:AReg_128 */, [[COPY]]
|
||||
; GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 7536649 /* reguse:AReg_128 */, [[COPY]]
|
||||
; GFX908-NEXT: S_ENDPGM 0
|
||||
;
|
||||
; GFX90A-LABEL: name: a_input_output_i128
|
||||
; GFX90A: bb.0 (%ir-block.0):
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 8650762 /* regdef:AReg_128_Align2 */, def %11
|
||||
; GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 8257546 /* regdef:AReg_128_Align2 */, def %11
|
||||
; GFX90A-NEXT: [[COPY:%[0-9]+]]:areg_128_align2 = COPY %11
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY]]
|
||||
; GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY]]
|
||||
; GFX90A-NEXT: S_ENDPGM 0
|
||||
%val = call i128 asm sideeffect "; def $0", "=a"()
|
||||
call void asm sideeffect "; use $0", "a"(i128 %val)
|
||||
|
||||
@ -18,21 +18,21 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_ADD_U32_e64_]], 256, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__literal_offsets
|
||||
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 256, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 512, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e64 %stack.0, 256, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 %stack.0, 512, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -53,27 +53,27 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 156, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_2:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 412, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_2]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_2]]
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__literal_offsets_commute
|
||||
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 256, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 512, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_2:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 100, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_2]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_2]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e64 256, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 512, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
%2:vgpr_32 = V_ADD_U32_e64 %stack.0, 100, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %2
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
|
||||
@ -21,9 +21,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX803-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, [[V_ADD_CO_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets
|
||||
@ -31,9 +31,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, [[V_ADD_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets
|
||||
@ -41,10 +41,10 @@ body: |
|
||||
; GFX942-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX942-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, [[COPY1]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets
|
||||
@ -52,9 +52,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, [[V_ADD_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets
|
||||
@ -62,15 +62,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, [[COPY1]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -88,42 +88,42 @@ body: |
|
||||
bb.0:
|
||||
; GFX803-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets_live_vcc
|
||||
; GFX803: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets_live_vcc
|
||||
; GFX900: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets_live_vcc
|
||||
; GFX942: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets_live_vcc
|
||||
; GFX10: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__literal_offsets_live_vcc
|
||||
; GFX12: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]], implicit $vcc
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 256, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 512, %stack.0, implicit-def $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1, implicit $vcc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1, implicit $vcc
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -144,9 +144,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX803-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 8, [[V_ADD_CO_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__inline_imm_offsets
|
||||
@ -154,9 +154,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 8, [[V_ADD_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__inline_imm_offsets
|
||||
@ -164,10 +164,10 @@ body: |
|
||||
; GFX942-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX942-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 8, [[COPY1]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__inline_imm_offsets
|
||||
@ -175,9 +175,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 8, [[V_ADD_U32_e64_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__inline_imm_offsets
|
||||
@ -185,15 +185,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 8, [[COPY1]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 8, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 16, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -214,9 +214,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64 = V_ADD_CO_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX803-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 8, [[V_ADD_CO_U32_e64_]], 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets
|
||||
@ -224,9 +224,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 8, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets
|
||||
@ -234,9 +234,9 @@ body: |
|
||||
; GFX942-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX942-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 8, [[S_ADD_I32_]], 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets
|
||||
@ -244,9 +244,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 8, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets
|
||||
@ -254,14 +254,14 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32_xm0 = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32_xexec_hi = S_ADD_I32 killed [[S_MOV_B32_]], [[S_MOV_B32_1]], implicit-def dead $scc
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 8, [[S_ADD_I32_]], 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32, dead %2:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32, dead %3:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -279,42 +279,42 @@ body: |
|
||||
bb.0:
|
||||
; GFX803-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets_live_vcc
|
||||
; GFX803: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: SI_RETURN implicit [[V_ADD_CO_U32_e64_1]]
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets_live_vcc
|
||||
; GFX900: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: SI_RETURN implicit [[V_ADD_CO_U32_e64_1]]
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets_live_vcc
|
||||
; GFX942: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: SI_RETURN implicit [[V_ADD_CO_U32_e64_1]]
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets_live_vcc
|
||||
; GFX10: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: SI_RETURN implicit [[V_ADD_CO_U32_e64_1]]
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e64__inline_imm_offsets_live_vcc
|
||||
; GFX12: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: SI_RETURN implicit [[V_ADD_CO_U32_e64_1]]
|
||||
%0:vgpr_32, %2:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32, %3:sreg_64_xexec = V_ADD_CO_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN implicit %2
|
||||
|
||||
...
|
||||
@ -332,42 +332,42 @@ body: |
|
||||
bb.0:
|
||||
; GFX803-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets
|
||||
; GFX803: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets
|
||||
; GFX900: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets
|
||||
; GFX942: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets
|
||||
; GFX10: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets
|
||||
; GFX12: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %0
|
||||
%1:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -385,42 +385,42 @@ body: |
|
||||
bb.0:
|
||||
; GFX803-LABEL: name: local_stack_alloc__s_add_i32__inline_imm_offsets
|
||||
; GFX803: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__s_add_i32__inline_imm_offsets
|
||||
; GFX900: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__s_add_i32__inline_imm_offsets
|
||||
; GFX942: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__s_add_i32__inline_imm_offsets
|
||||
; GFX10: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__s_add_i32__inline_imm_offsets
|
||||
; GFX12: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:sreg_32 = S_ADD_I32 8, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %0
|
||||
%1:sreg_32 = S_ADD_I32 16, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -443,9 +443,9 @@ body: |
|
||||
; GFX803-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX803-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX803-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY1]], %stack.0, implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets
|
||||
@ -454,9 +454,9 @@ body: |
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX900-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX900-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY1]], %stack.0, implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets
|
||||
@ -465,9 +465,9 @@ body: |
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX942-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY1]], %stack.0, implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets
|
||||
@ -476,9 +476,9 @@ body: |
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX10-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY1]], %stack.0, implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets
|
||||
@ -487,17 +487,17 @@ body: |
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX12-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX12-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY]], %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 [[COPY1]], %stack.0, implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:sreg_32 = COPY $sgpr4
|
||||
%1:sreg_32 = COPY $sgpr5
|
||||
|
||||
%2:sreg_32 = S_ADD_I32 %0, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %2
|
||||
%3:sreg_32 = S_ADD_I32 %1, %stack.0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %3
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -520,9 +520,9 @@ body: |
|
||||
; GFX803-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX803-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX803-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY]], implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY1]], implicit-def dead $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets_commute
|
||||
@ -531,9 +531,9 @@ body: |
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX900-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX900-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY]], implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY1]], implicit-def dead $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets_commute
|
||||
@ -542,9 +542,9 @@ body: |
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX942-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY]], implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY1]], implicit-def dead $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets_commute
|
||||
@ -553,9 +553,9 @@ body: |
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX10-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX10-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY]], implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY1]], implicit-def dead $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__s_add_i32__reg_offsets_commute
|
||||
@ -564,17 +564,17 @@ body: |
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr4
|
||||
; GFX12-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr5
|
||||
; GFX12-NEXT: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY]], implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 %stack.0, [[COPY1]], implicit-def dead $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:sreg_32 = COPY $sgpr4
|
||||
%1:sreg_32 = COPY $sgpr5
|
||||
|
||||
%2:sreg_32 = S_ADD_I32 %stack.0, %0, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %2
|
||||
%3:sreg_32 = S_ADD_I32 %stack.0, %1, implicit-def dead $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %3
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %3
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -592,48 +592,48 @@ body: |
|
||||
bb.0:
|
||||
; GFX803-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets_live_scc
|
||||
; GFX803: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX803-NEXT: S_NOP 0, implicit $scc
|
||||
; GFX803-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX803-NEXT: SI_RETURN implicit $scc
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets_live_scc
|
||||
; GFX900: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX900-NEXT: S_NOP 0, implicit $scc
|
||||
; GFX900-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX900-NEXT: SI_RETURN implicit $scc
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets_live_scc
|
||||
; GFX942: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX942-NEXT: S_NOP 0, implicit $scc
|
||||
; GFX942-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX942-NEXT: SI_RETURN implicit $scc
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets_live_scc
|
||||
; GFX10: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX10-NEXT: S_NOP 0, implicit $scc
|
||||
; GFX10-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX10-NEXT: SI_RETURN implicit $scc
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__s_add_i32__literal_offsets_live_scc
|
||||
; GFX12: [[S_ADD_I32_:%[0-9]+]]:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_]]
|
||||
; GFX12-NEXT: S_NOP 0, implicit $scc
|
||||
; GFX12-NEXT: [[S_ADD_I32_1:%[0-9]+]]:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, [[S_ADD_I32_1]]
|
||||
; GFX12-NEXT: SI_RETURN implicit $scc
|
||||
%0:sreg_32 = S_ADD_I32 256, %stack.0, implicit-def $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %0
|
||||
S_NOP 0, implicit $scc
|
||||
%1:sreg_32 = S_ADD_I32 512, %stack.0, implicit-def $scc
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1835017 /* reguse:SReg_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1572873 /* reguse:SReg_32 */, %1
|
||||
SI_RETURN implicit $scc
|
||||
|
||||
...
|
||||
@ -656,9 +656,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets
|
||||
@ -667,9 +667,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets
|
||||
@ -678,9 +678,9 @@ body: |
|
||||
; GFX942-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX942-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets
|
||||
@ -689,9 +689,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets
|
||||
@ -700,15 +700,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 %vgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -731,9 +731,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets_commute
|
||||
@ -742,9 +742,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets_commute
|
||||
@ -753,9 +753,9 @@ body: |
|
||||
; GFX942-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX942-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets_commute
|
||||
@ -764,9 +764,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__vgpr_offsets_commute
|
||||
@ -775,15 +775,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 [[S_MOV_B32_]], %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 %stack.0, %vgpr_offset, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -805,9 +805,9 @@ body: |
|
||||
; GFX803-NEXT: {{ $}}
|
||||
; GFX803-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e32__sgpr_offsets
|
||||
@ -815,9 +815,9 @@ body: |
|
||||
; GFX900-NEXT: {{ $}}
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e32__sgpr_offsets
|
||||
@ -825,9 +825,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e32__sgpr_offsets
|
||||
@ -836,9 +836,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, [[V_MOV_B32_e32_]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e32__sgpr_offsets
|
||||
@ -848,16 +848,16 @@ body: |
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, [[COPY]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_]]
|
||||
; GFX12-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, [[COPY1]], implicit-def dead $vcc, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_CO_U32_e32 %sgpr_offset, %stack.0, implicit-def dead $vcc, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -880,9 +880,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets
|
||||
@ -891,9 +891,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets
|
||||
@ -903,10 +903,10 @@ body: |
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[COPY]], 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[S_MOV_B32_]]
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[COPY1]], 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets
|
||||
@ -915,9 +915,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets
|
||||
@ -926,15 +926,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[S_MOV_B32_]], 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, [[S_MOV_B32_]], 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32, dead %2:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32, dead %3:sreg_64_xexec = V_ADD_CO_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -957,9 +957,9 @@ body: |
|
||||
; GFX803-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX803-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX803-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX803-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX900-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets_commute
|
||||
@ -968,9 +968,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX900-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets_commute
|
||||
@ -980,10 +980,10 @@ body: |
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY %sgpr_offset
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[S_MOV_B32_]], [[COPY]], 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX942-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY %sgpr_offset
|
||||
; GFX942-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[S_MOV_B32_]], [[COPY1]], 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets_commute
|
||||
@ -992,9 +992,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX10-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_co_u32_e64__sgpr_offsets_commute
|
||||
@ -1003,15 +1003,15 @@ body: |
|
||||
; GFX12-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.0
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[S_MOV_B32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_CO_U32_e64_2:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_3:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[S_MOV_B32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_CO_U32_e64_2]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32, dead %2:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32, dead %3:sreg_64_xexec = V_ADD_CO_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
|
||||
@ -20,16 +20,16 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 256, [[V_ADD_U32_e64_]], implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e32__literal_offsets
|
||||
; GFX942: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 256, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 512, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e32__literal_offsets
|
||||
@ -37,21 +37,21 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 256, [[V_ADD_U32_e64_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e32__literal_offsets
|
||||
; GFX12: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 256, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 512, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e32 256, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e32 512, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -72,16 +72,16 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 8, [[V_ADD_U32_e64_]], implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e32__inline_imm_offsets
|
||||
; GFX942: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 8, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 16, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e32__inline_imm_offsets
|
||||
@ -89,21 +89,21 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 8, [[V_ADD_U32_e64_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e32__inline_imm_offsets
|
||||
; GFX12: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 8, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 16, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e32 8, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e32 16, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -124,16 +124,16 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 8, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets
|
||||
; GFX942: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets
|
||||
@ -141,21 +141,21 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 8, [[V_ADD_U32_e64_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets
|
||||
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 16, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -178,9 +178,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets
|
||||
@ -188,9 +188,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets
|
||||
@ -199,9 +199,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets
|
||||
@ -209,15 +209,15 @@ body: |
|
||||
; GFX12-NEXT: {{ $}}
|
||||
; GFX12-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
%0:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e32 %vgpr_offset, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -240,9 +240,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets_commute
|
||||
@ -250,9 +250,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets_commute
|
||||
@ -261,9 +261,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 [[V_MOV_B32_e32_]], %vgpr_offset, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e32__vgpr_offsets_commute
|
||||
@ -271,15 +271,15 @@ body: |
|
||||
; GFX12-NEXT: {{ $}}
|
||||
; GFX12-NEXT: %vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%vgpr_offset:vgpr_32 = COPY $vgpr0
|
||||
%0:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e32 %stack.0, %vgpr_offset, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -301,9 +301,9 @@ body: |
|
||||
; GFX900-NEXT: {{ $}}
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e32__sgpr_offsets
|
||||
@ -311,9 +311,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e32__sgpr_offsets
|
||||
@ -322,9 +322,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, [[V_MOV_B32_e32_]], implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e32__sgpr_offsets
|
||||
@ -332,15 +332,15 @@ body: |
|
||||
; GFX12-NEXT: {{ $}}
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e32_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e32_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e32 %sgpr_offset, %stack.0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -363,9 +363,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets
|
||||
@ -373,9 +373,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets
|
||||
@ -384,9 +384,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets
|
||||
@ -394,15 +394,15 @@ body: |
|
||||
; GFX12-NEXT: {{ $}}
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 %sgpr_offset, %stack.0, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -425,9 +425,9 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets_commute
|
||||
@ -435,9 +435,9 @@ body: |
|
||||
; GFX942-NEXT: {{ $}}
|
||||
; GFX942-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets_commute
|
||||
@ -446,9 +446,9 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 [[V_MOV_B32_e32_]], %sgpr_offset, 0, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__sgpr_offsets_commute
|
||||
@ -456,15 +456,15 @@ body: |
|
||||
; GFX12-NEXT: {{ $}}
|
||||
; GFX12-NEXT: %sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%sgpr_offset:sreg_32 = COPY $sgpr8
|
||||
%0:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 %stack.0, %sgpr_offset, 0, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
@ -486,16 +486,16 @@ body: |
|
||||
; GFX900-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX900-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX900-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 8, [[V_ADD_U32_e64_]], 1, implicit $exec
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX900-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX942-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets_clamp_modifier
|
||||
; GFX942: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, 1, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX942-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 16, %stack.0, 1, implicit $exec
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX942-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX10-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets_clamp_modifier
|
||||
@ -503,21 +503,21 @@ body: |
|
||||
; GFX10-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 killed [[S_MOV_B32_]], [[V_MOV_B32_e32_]], 0, implicit $exec
|
||||
; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[V_ADD_U32_e64_]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[COPY]]
|
||||
; GFX10-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 8, [[V_ADD_U32_e64_]], 1, implicit $exec
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX10-NEXT: SI_RETURN
|
||||
;
|
||||
; GFX12-LABEL: name: local_stack_alloc__v_add_u32_e64__inline_imm_offsets_clamp_modifier
|
||||
; GFX12: [[V_ADD_U32_e64_:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, 1, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_]]
|
||||
; GFX12-NEXT: [[V_ADD_U32_e64_1:%[0-9]+]]:vgpr_32 = V_ADD_U32_e64 16, %stack.0, 1, implicit $exec
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[V_ADD_U32_e64_1]]
|
||||
; GFX12-NEXT: SI_RETURN
|
||||
%0:vgpr_32 = V_ADD_U32_e64 %stack.0, 8, /*clamp*/1, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %0
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %0
|
||||
%1:vgpr_32 = V_ADD_U32_e64 16, %stack.0, /*clamp*/1, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
|
||||
@ -9572,7 +9572,7 @@ body: |
|
||||
; GFX908-NEXT: [[V_CVT_I32_F64_e32_20:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 20, implicit $exec, implicit $mode, implicit-def $m0
|
||||
; GFX908-NEXT: [[V_CVT_I32_F64_e32_21:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 21, implicit $exec, implicit $mode, implicit-def $m0
|
||||
; GFX908-NEXT: [[V_CVT_I32_F64_e32_22:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 23, implicit $exec, implicit $mode
|
||||
; GFX908-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %22, 1245193 /* reguse:VGPR_32 */, [[V_CVT_I32_F64_e32_4]]
|
||||
; GFX908-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %22, 1179657 /* reguse:VGPR_32 */, [[V_CVT_I32_F64_e32_4]]
|
||||
; GFX908-NEXT: {{ $}}
|
||||
; GFX908-NEXT: bb.1:
|
||||
; GFX908-NEXT: successors: %bb.2(0x80000000)
|
||||
@ -9623,7 +9623,7 @@ body: |
|
||||
; GFX908-GCNTRACKERS-NEXT: [[V_CVT_I32_F64_e32_20:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 20, implicit $exec, implicit $mode, implicit-def $m0
|
||||
; GFX908-GCNTRACKERS-NEXT: [[V_CVT_I32_F64_e32_21:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 21, implicit $exec, implicit $mode, implicit-def $m0
|
||||
; GFX908-GCNTRACKERS-NEXT: [[V_CVT_I32_F64_e32_22:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 23, implicit $exec, implicit $mode
|
||||
; GFX908-GCNTRACKERS-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %22, 1245193 /* reguse:VGPR_32 */, [[V_CVT_I32_F64_e32_4]]
|
||||
; GFX908-GCNTRACKERS-NEXT: INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %22, 1179657 /* reguse:VGPR_32 */, [[V_CVT_I32_F64_e32_4]]
|
||||
; GFX908-GCNTRACKERS-NEXT: {{ $}}
|
||||
; GFX908-GCNTRACKERS-NEXT: bb.1:
|
||||
; GFX908-GCNTRACKERS-NEXT: successors: %bb.2(0x80000000)
|
||||
@ -9671,7 +9671,7 @@ body: |
|
||||
%19:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 19, implicit $exec, implicit $mode, implicit-def $m0
|
||||
%20:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 20, implicit $exec, implicit $mode, implicit-def $m0
|
||||
%21:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 21, implicit $exec, implicit $mode, implicit-def $m0
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1245194 /* regdef:VGPR_32 */, def %22:vgpr_32, 1245193 /* reguse:VGPR_32 */, %4
|
||||
INLINEASM &"v_or_b32 $0, 0, $1", 0 /* attdialect */, 1179658 /* regdef:VGPR_32 */, def %22:vgpr_32, 1179657 /* reguse:VGPR_32 */, %4
|
||||
%23:vgpr_32 = nofpexcept V_CVT_I32_F64_e32 23, implicit $exec, implicit $mode
|
||||
|
||||
bb.1:
|
||||
|
||||
@ -33,7 +33,7 @@ name: asm_write_vgpr_accvgpr_write_read
|
||||
body: |
|
||||
bb.0:
|
||||
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0
|
||||
$agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
|
||||
...
|
||||
|
||||
@ -47,7 +47,7 @@ name: asm_write_vgpr_accvgpr_write_read_partialnop
|
||||
body: |
|
||||
bb.0:
|
||||
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr0
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr0
|
||||
S_NOP 0
|
||||
$agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
|
||||
...
|
||||
@ -60,7 +60,7 @@ name: asm_write_vgpr_accvgpr_write_read_otherreg
|
||||
body: |
|
||||
bb.0:
|
||||
liveins: $vgpr0
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def $vgpr1
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def $vgpr1
|
||||
$agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec
|
||||
...
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[COPY:%[0-9]+]].sub1:sgpr_64 = COPY $sgpr17
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]].sub0:sgpr_64 = COPY $sgpr16
|
||||
; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"; def $0", 0 /* attdialect */, 2818058 /* regdef:VReg_64 */, def undef %5.sub0_sub1
|
||||
; CHECK-NEXT: INLINEASM &"; def $0", 0 /* attdialect */, 2424842 /* regdef:VReg_64 */, def undef %5.sub0_sub1
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4_SADDR [[V_MOV_B32_e32_]], %5.sub1_sub2_sub3_sub4, [[COPY]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:sgpr_32 = COPY killed $sgpr17
|
||||
@ -23,7 +23,7 @@ body: |
|
||||
undef %2.sub0:sgpr_64 = COPY killed %1
|
||||
%2.sub1:sgpr_64 = COPY killed %0
|
||||
%3:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
INLINEASM &"; def $0", 0 /* attdialect */, 2818058 /* regdef:VReg_64 */, def %4:vreg_64
|
||||
INLINEASM &"; def $0", 0 /* attdialect */, 2424842 /* regdef:VReg_64 */, def %4:vreg_64
|
||||
undef %5.sub0:vreg_128 = COPY killed %4.sub1
|
||||
GLOBAL_STORE_DWORDX4_SADDR killed %3, killed %5, killed %2, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
|
||||
@ -15,7 +15,7 @@ body: |
|
||||
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr_64 = COPY $exec
|
||||
; CHECK-NEXT: INLINEASM &"", 25 /* sideeffect mayload maystore attdialect */, 4653065 /* reguse:SGPR_64 */, [[COPY]]
|
||||
; CHECK-NEXT: INLINEASM &"", 25 /* sideeffect mayload maystore attdialect */, 4259849 /* reguse:SGPR_64 */, [[COPY]]
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: bb.1:
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
@ -23,7 +23,7 @@ body: |
|
||||
successors: %bb.1(0x80000000)
|
||||
|
||||
%0:sgpr_64 = COPY $exec
|
||||
INLINEASM &"", 25 /* sideeffect mayload maystore attdialect */, 4653065 /* reguse:SGPR_64 */, %0
|
||||
INLINEASM &"", 25 /* sideeffect mayload maystore attdialect */, 4259849 /* reguse:SGPR_64 */, %0
|
||||
|
||||
bb.1:
|
||||
SI_RETURN
|
||||
|
||||
@ -11,10 +11,10 @@ define amdgpu_kernel void @partial_copy(<4 x i32> %arg) #0 {
|
||||
; REGALLOC-GFX908: bb.0 (%ir-block.0):
|
||||
; REGALLOC-GFX908-NEXT: liveins: $sgpr4_sgpr5
|
||||
; REGALLOC-GFX908-NEXT: {{ $}}
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, undef %6:agpr_32
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7012362 /* regdef:VReg_128 */, def %25
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, undef %6:agpr_32
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6619146 /* regdef:VReg_128 */, def %25
|
||||
; REGALLOC-GFX908-NEXT: [[COPY:%[0-9]+]]:av_128 = COPY %25
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2818058 /* regdef:VReg_64 */, def %27
|
||||
; REGALLOC-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2424842 /* regdef:VReg_64 */, def %27
|
||||
; REGALLOC-GFX908-NEXT: SI_SPILL_AV64_SAVE %27, %stack.0, $sgpr32, 0, implicit $exec :: (store (s64) into %stack.0, align 4, addrspace 5)
|
||||
; REGALLOC-GFX908-NEXT: [[COPY1:%[0-9]+]]:vreg_128 = COPY [[COPY]]
|
||||
; REGALLOC-GFX908-NEXT: GLOBAL_STORE_DWORDX4 undef %15:vreg_64, [[COPY1]], 0, 0, implicit $exec :: (volatile store (s128) into `ptr addrspace(1) poison`, addrspace 1)
|
||||
@ -36,10 +36,10 @@ define amdgpu_kernel void @partial_copy(<4 x i32> %arg) #0 {
|
||||
; PEI-GFX908-NEXT: $sgpr12_sgpr13_sgpr14_sgpr15 = COPY killed $sgpr0_sgpr1_sgpr2_sgpr3
|
||||
; PEI-GFX908-NEXT: $sgpr12 = S_ADD_U32 $sgpr12, $sgpr9, implicit-def $scc, implicit-def $sgpr12_sgpr13_sgpr14_sgpr15
|
||||
; PEI-GFX908-NEXT: $sgpr13 = S_ADDC_U32 $sgpr13, 0, implicit-def dead $scc, implicit $scc, implicit-def $sgpr12_sgpr13_sgpr14_sgpr15
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, undef renamable $agpr0
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7012362 /* regdef:VReg_128 */, def renamable $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, undef renamable $agpr0
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6619146 /* regdef:VReg_128 */, def renamable $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; PEI-GFX908-NEXT: renamable $agpr0_agpr1_agpr2_agpr3 = COPY killed renamable $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2818058 /* regdef:VReg_64 */, def renamable $vgpr0_vgpr1
|
||||
; PEI-GFX908-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2424842 /* regdef:VReg_64 */, def renamable $vgpr0_vgpr1
|
||||
; PEI-GFX908-NEXT: BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr12_sgpr13_sgpr14_sgpr15, 0, 0, 0, 0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1 :: ("amdgpu-thread-private" store (s32) into %stack.0, addrspace 5)
|
||||
; PEI-GFX908-NEXT: $agpr4 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr1, implicit $exec, implicit killed $vgpr0_vgpr1
|
||||
; PEI-GFX908-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = COPY killed renamable $agpr0_agpr1_agpr2_agpr3, implicit $exec
|
||||
@ -60,10 +60,10 @@ define amdgpu_kernel void @partial_copy(<4 x i32> %arg) #0 {
|
||||
; REGALLOC-GFX90A: bb.0 (%ir-block.0):
|
||||
; REGALLOC-GFX90A-NEXT: liveins: $sgpr4_sgpr5
|
||||
; REGALLOC-GFX90A-NEXT: {{ $}}
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, undef %6:agpr_32
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7340042 /* regdef:VReg_128_Align2 */, def %23
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, undef %6:agpr_32
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6946826 /* regdef:VReg_128_Align2 */, def %23
|
||||
; REGALLOC-GFX90A-NEXT: [[COPY:%[0-9]+]]:av_128_align2 = COPY %23
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 3080202 /* regdef:VReg_64_Align2 */, def %21
|
||||
; REGALLOC-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2686986 /* regdef:VReg_64_Align2 */, def %21
|
||||
; REGALLOC-GFX90A-NEXT: [[COPY1:%[0-9]+]]:av_64_align2 = COPY %21
|
||||
; REGALLOC-GFX90A-NEXT: GLOBAL_STORE_DWORDX4 undef %15:vreg_64_align2, [[COPY]], 0, 0, implicit $exec :: (volatile store (s128) into `ptr addrspace(1) poison`, addrspace 1)
|
||||
; REGALLOC-GFX90A-NEXT: renamable $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM killed renamable $sgpr4_sgpr5, 0, 0 :: (dereferenceable invariant load (s128) from %ir.arg.kernarg.offset1, addrspace 4)
|
||||
@ -79,10 +79,10 @@ define amdgpu_kernel void @partial_copy(<4 x i32> %arg) #0 {
|
||||
; PEI-GFX90A: bb.0 (%ir-block.0):
|
||||
; PEI-GFX90A-NEXT: liveins: $sgpr4_sgpr5
|
||||
; PEI-GFX90A-NEXT: {{ $}}
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, undef renamable $agpr0
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 7340042 /* regdef:VReg_128_Align2 */, def renamable $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, undef renamable $agpr0
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 6946826 /* regdef:VReg_128_Align2 */, def renamable $vgpr0_vgpr1_vgpr2_vgpr3
|
||||
; PEI-GFX90A-NEXT: renamable $agpr0_agpr1_agpr2_agpr3 = COPY killed renamable $vgpr0_vgpr1_vgpr2_vgpr3, implicit $exec
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 3080202 /* regdef:VReg_64_Align2 */, def renamable $vgpr2_vgpr3
|
||||
; PEI-GFX90A-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 2686986 /* regdef:VReg_64_Align2 */, def renamable $vgpr2_vgpr3
|
||||
; PEI-GFX90A-NEXT: GLOBAL_STORE_DWORDX4 undef renamable $vgpr0_vgpr1, killed renamable $agpr0_agpr1_agpr2_agpr3, 0, 0, implicit $exec :: (volatile store (s128) into `ptr addrspace(1) poison`, addrspace 1)
|
||||
; PEI-GFX90A-NEXT: renamable $sgpr0_sgpr1_sgpr2_sgpr3 = S_LOAD_DWORDX4_IMM killed renamable $sgpr4_sgpr5, 0, 0 :: (dereferenceable invariant load (s128) from %ir.arg.kernarg.offset1, addrspace 4)
|
||||
; PEI-GFX90A-NEXT: renamable $agpr0_agpr1_agpr2_agpr3 = COPY killed renamable $sgpr0_sgpr1_sgpr2_sgpr3, implicit $exec
|
||||
|
||||
@ -43,17 +43,17 @@ machineFunctionInfo:
|
||||
body: |
|
||||
bb.0:
|
||||
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1638410 /* regdef:AGPR_32 */, implicit-def $agpr0
|
||||
INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1376266 /* regdef:AGPR_32 */, implicit-def $agpr0
|
||||
%14:vgpr_32 = COPY killed $agpr0
|
||||
INLINEASM &"; def $0 $1 $2 $3 $4", 1 /* sideeffect attdialect */, 39125002 /* regdef:VReg_512 */, def %7, 18546698 /* regdef:VReg_256 */, def %8, 7012362 /* regdef:VReg_128 */, def %9, 5046282 /* regdef:VReg_96 */, def %10, 5046282 /* regdef:VReg_96 */, def %11
|
||||
INLINEASM &"; def $0 $1 $2 $3 $4", 1 /* sideeffect attdialect */, 38731786 /* regdef:VReg_512 */, def %7, 18153482 /* regdef:VReg_256 */, def %8, 6619146 /* regdef:VReg_128 */, def %9, 4653066 /* regdef:VReg_96 */, def %10, 4653066 /* regdef:VReg_96 */, def %11
|
||||
INLINEASM &"; clobber", 1 /* sideeffect attdialect */, 12 /* clobber */, implicit-def dead early-clobber $agpr0_agpr1_agpr2_agpr3_agpr4_agpr5_agpr6_agpr7_agpr8_agpr9_agpr10_agpr11_agpr12_agpr13_agpr14_agpr15_agpr16_agpr17_agpr18_agpr19_agpr20_agpr21_agpr22_agpr23_agpr24_agpr25_agpr26_agpr27_agpr28_agpr29_agpr30_agpr31, 12 /* clobber */, implicit-def dead early-clobber $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 39125001 /* reguse:VReg_512 */, %7
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 18546697 /* reguse:VReg_256 */, %8
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 7012361 /* reguse:VReg_128 */, %9
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 5046281 /* reguse:VReg_96 */, %10
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 5046281 /* reguse:VReg_96 */, %11
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 38731785 /* reguse:VReg_512 */, %7
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 18153481 /* reguse:VReg_256 */, %8
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 6619145 /* reguse:VReg_128 */, %9
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 4653065 /* reguse:VReg_96 */, %10
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 4653065 /* reguse:VReg_96 */, %11
|
||||
$agpr1 = COPY %14
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, killed $agpr1
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, killed $agpr1
|
||||
SI_RETURN
|
||||
|
||||
...
|
||||
|
||||
@ -73,7 +73,7 @@ body: |
|
||||
# (1) %0.sub0 + %0.sub0 and (2) %0.sub1 + %0.sub1
|
||||
# Check that renaming (2) does not inadvertently rename (1).
|
||||
# CHECK-LABEL: name: test2
|
||||
# CHECK: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %0.sub0, 1245194 /* regdef:VGPR_32 */, def dead %1.sub1, 2147483657 /* reguse tiedto:$0 */, undef %0.sub0(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %1.sub1(tied-def 5)
|
||||
# CHECK: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %0.sub0, 1179658 /* regdef:VGPR_32 */, def dead %1.sub1, 2147483657 /* reguse tiedto:$0 */, undef %0.sub0(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %1.sub1(tied-def 5)
|
||||
name: test2
|
||||
body: |
|
||||
bb.0:
|
||||
@ -81,7 +81,7 @@ body: |
|
||||
|
||||
bb.1:
|
||||
undef %0.sub1:vreg_64 = V_ALIGNBIT_B32_e64 %0.sub0:vreg_64, %0.sub0:vreg_64, 16, implicit $exec
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %0.sub0:vreg_64, 1245194 /* regdef:VGPR_32 */, def %0.sub1:vreg_64, 2147483657 /* reguse tiedto:$0 */, undef %0.sub0:vreg_64(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %0.sub1:vreg_64(tied-def 5)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %0.sub0:vreg_64, 1179658 /* regdef:VGPR_32 */, def %0.sub1:vreg_64, 2147483657 /* reguse tiedto:$0 */, undef %0.sub0:vreg_64(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %0.sub1:vreg_64(tied-def 5)
|
||||
S_BRANCH %bb.1
|
||||
|
||||
...
|
||||
|
||||
@ -43,7 +43,7 @@ body: |
|
||||
; CHECK-NEXT: [[GLOBAL_LOAD_DWORDX4_:%[0-9]+]]:areg_128_align2 = GLOBAL_LOAD_DWORDX4 [[COPY]], 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:vreg_128_align2 = COPY [[GLOBAL_LOAD_DWORDX4_]]
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_vgprcd_e64_:%[0-9]+]]:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 [[COPY1]], [[COPY2]], [[COPY3]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3080201 /* reguse:VReg_64_Align2 */, [[V_MFMA_F64_4X4X4F64_vgprcd_e64_]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2686985 /* reguse:VReg_64_Align2 */, [[V_MFMA_F64_4X4X4F64_vgprcd_e64_]]
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
%1:av_64_align2 = COPY $vgpr0_vgpr1
|
||||
@ -51,7 +51,7 @@ body: |
|
||||
%3:areg_128_align2 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
%4:vreg_128_align2 = COPY %3
|
||||
%5:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %4.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3080201 /* reguse:VReg_64_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2686985 /* reguse:VReg_64_Align2 */, %5
|
||||
SI_RETURN
|
||||
...
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ body: |
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[GLOBAL_LOAD_DWORDX2_]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]]
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub2_sub3:areg_128_align2 = IMPLICIT_DEF
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY3]].sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
@ -30,7 +30,7 @@ body: |
|
||||
%4:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %3, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %5.sub0_sub1:areg_128_align2 = COPY %4
|
||||
%5.sub2_sub3 = IMPLICIT_DEF
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %5
|
||||
GLOBAL_STORE_DWORDX4 %0, %5, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
GLOBAL_STORE_DWORDX2 %0, %5.sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
@ -172,7 +172,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[V_MFMA_F64_4X4X4F64_e64_:%[0-9]+]].sub2_sub3:areg_128_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[GLOBAL_LOAD_DWORDX2_]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub2_sub3
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub2_sub3:areg_128_align2 = IMPLICIT_DEF
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY3]].sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
@ -183,7 +183,7 @@ body: |
|
||||
undef %4.sub2_sub3:vreg_128_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %3, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %5.sub0_sub1:areg_128_align2 = COPY %4.sub2_sub3
|
||||
%5.sub2_sub3 = IMPLICIT_DEF
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %5
|
||||
GLOBAL_STORE_DWORDX4 %0, %5, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
GLOBAL_STORE_DWORDX2 %0, %5.sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
@ -208,7 +208,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[V_MFMA_F64_4X4X4F64_vgprcd_e64_:%[0-9]+]].sub2_sub3:vreg_128_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 [[COPY1]], [[COPY2]], [[GLOBAL_LOAD_DWORDX2_]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_vgprcd_e64_]].sub2
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]].sub2_sub3:areg_128_align2 = IMPLICIT_DEF
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY3]].sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
@ -219,7 +219,7 @@ body: |
|
||||
undef %4.sub2_sub3:vreg_128_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %3, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %5.sub1:areg_128_align2 = COPY %4.sub2
|
||||
%5.sub2_sub3 = IMPLICIT_DEF
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %5
|
||||
GLOBAL_STORE_DWORDX4 %0, %5, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
GLOBAL_STORE_DWORDX2 %0, %5.sub2_sub3, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
|
||||
@ -17,7 +17,7 @@ body: |
|
||||
; CHECK-NEXT: [[GLOBAL_LOAD_DWORDX4_:%[0-9]+]]:areg_128_align2 = GLOBAL_LOAD_DWORDX4 [[COPY]], 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[GLOBAL_LOAD_DWORDX4_]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -26,7 +26,7 @@ body: |
|
||||
%3:vreg_128_align2 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
%4:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %3.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %5.sub0_sub1:areg_128_align2 = COPY %4
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %5
|
||||
GLOBAL_STORE_DWORDX4 %0, %5, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
@ -47,7 +47,7 @@ body: |
|
||||
; CHECK-NEXT: [[GLOBAL_LOAD_DWORDX4_:%[0-9]+]]:areg_128_align2 = GLOBAL_LOAD_DWORDX4 [[COPY]], 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[GLOBAL_LOAD_DWORDX4_]].sub2_sub3, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -56,7 +56,7 @@ body: |
|
||||
%3:vreg_128_align2 = GLOBAL_LOAD_DWORDX4 %0, 0, 0, implicit $exec :: (load (s128), addrspace 1)
|
||||
%4:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %3.sub2_sub3, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %5.sub0_sub1:areg_128_align2 = COPY %4
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %5
|
||||
GLOBAL_STORE_DWORDX4 %0, %5, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
@ -79,7 +79,7 @@ body: |
|
||||
; CHECK-NEXT: dead %other_use:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub0_sub1
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_1:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[V_MFMA_F64_4X4X4F64_e64_]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:areg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_1]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -90,7 +90,7 @@ body: |
|
||||
%other_use:vreg_64_align2 = COPY %4.sub0_sub1
|
||||
%5:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %4.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
%6:areg_64_align2 = COPY %5
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %6:areg_64_align2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %6:areg_64_align2
|
||||
GLOBAL_STORE_DWORDX2 %0, %6, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
@ -114,7 +114,7 @@ body: |
|
||||
; CHECK-NEXT: undef [[V_MFMA_F64_4X4X4F64_e64_1:%[0-9]+]].sub0_sub1:areg_128_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[V_MFMA_F64_4X4X4F64_e64_]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_2:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[V_MFMA_F64_4X4X4F64_e64_1]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:areg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3997705 /* reguse:AReg_64_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3604489 /* reguse:AReg_64_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -126,7 +126,7 @@ body: |
|
||||
undef %5.sub0_sub1:vreg_128_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %4, 0, 0, 0, implicit $mode, implicit $exec
|
||||
%6:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %5.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
%7:areg_64_align2 = COPY %6
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3997705 /* reguse:AReg_64_Align2 */, %7
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3604489 /* reguse:AReg_64_Align2 */, %7
|
||||
GLOBAL_STORE_DWORDX2 %0, %7, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
SI_RETURN
|
||||
|
||||
@ -151,7 +151,7 @@ body: |
|
||||
; CHECK-NEXT: dead %other_use:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_1]].sub0_sub1
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_2:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[V_MFMA_F64_4X4X4F64_e64_1]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: undef [[COPY3:%[0-9]+]].sub0_sub1:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -163,7 +163,7 @@ body: |
|
||||
%other_use:vreg_64_align2 = COPY %5.sub0_sub1
|
||||
%6:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %5.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
undef %8.sub0_sub1:areg_128_align2 = COPY %6
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %8:areg_128_align2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %8:areg_128_align2
|
||||
GLOBAL_STORE_DWORDX4 %0, %8, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
|
||||
@ -189,7 +189,7 @@ body: |
|
||||
; CHECK-NEXT: dead %other_use1:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_1]].sub0_sub1
|
||||
; CHECK-NEXT: [[V_MFMA_F64_4X4X4F64_e64_2:%[0-9]+]]:areg_64_align2 = V_MFMA_F64_4X4X4F64_e64 [[COPY1]], [[COPY2]], [[V_MFMA_F64_4X4X4F64_e64_1]].sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:agpr_32 = COPY [[V_MFMA_F64_4X4X4F64_e64_2]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORD [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s32), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -202,7 +202,7 @@ body: |
|
||||
%other_use1:vreg_64_align2 = COPY %5.sub0_sub1
|
||||
%6:vreg_64_align2 = V_MFMA_F64_4X4X4F64_vgprcd_e64 %1, %2, %5.sub0_sub1, 0, 0, 0, implicit $mode, implicit $exec
|
||||
%8:agpr_32 = COPY %6
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1638409 /* reguse:AGPR_32 */, %8:agpr_32
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 1376265 /* reguse:AGPR_32 */, %8:agpr_32
|
||||
GLOBAL_STORE_DWORD %0, %8, 0, 0, implicit $exec :: (store (s32), addrspace 1)
|
||||
SI_RETURN
|
||||
|
||||
@ -231,7 +231,7 @@ body: |
|
||||
; CHECK-NEXT: dead %other_use1:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub2_sub3
|
||||
; CHECK-NEXT: dead %other_use2:vreg_64 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub1_sub2
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:areg_128_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX4 [[COPY]], [[COPY3]], 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -245,7 +245,7 @@ body: |
|
||||
%other_use1:vreg_64_align2 = COPY %4.sub2_sub3
|
||||
%other_use2:vreg_64 = COPY %4.sub1_sub2
|
||||
%6:areg_128_align2 = COPY %4
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8650761 /* reguse:AReg_128_Align2 */, %6:areg_128_align2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 8257545 /* reguse:AReg_128_Align2 */, %6:areg_128_align2
|
||||
GLOBAL_STORE_DWORDX4 %0, %6, 0, 0, implicit $exec :: (store (s128), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
@ -273,7 +273,7 @@ body: |
|
||||
; CHECK-NEXT: %other_use1:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub2_sub3
|
||||
; CHECK-NEXT: dead %other_use2:vreg_64 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub1_sub2
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:areg_64 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], %other_use1, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -287,7 +287,7 @@ body: |
|
||||
%other_use1:vreg_64_align2 = COPY %4.sub2_sub3
|
||||
%other_use2:vreg_64 = COPY %4.sub1_sub2
|
||||
%6:areg_64 = COPY %4.sub1_sub2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3407881 /* reguse:AReg_64 */, %6:areg_64
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3014665 /* reguse:AReg_64 */, %6:areg_64
|
||||
GLOBAL_STORE_DWORDX2 %0, %other_use1, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
@ -313,7 +313,7 @@ body: |
|
||||
; CHECK-NEXT: %other_use1:vreg_64_align2 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub2_sub3
|
||||
; CHECK-NEXT: dead %other_use2:vreg_64 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub1_sub2
|
||||
; CHECK-NEXT: [[COPY3:%[0-9]+]]:areg_64 = COPY [[V_MFMA_F64_4X4X4F64_e64_]].sub1_sub2
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3407881 /* reguse:AReg_64 */, [[COPY3]]
|
||||
; CHECK-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3014665 /* reguse:AReg_64 */, [[COPY3]]
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORDX2 [[COPY]], %other_use1, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
; CHECK-NEXT: SI_RETURN
|
||||
%0:vreg_64_align2 = COPY $vgpr4_vgpr5
|
||||
@ -327,7 +327,7 @@ body: |
|
||||
%other_use1:vreg_64_align2 = COPY %4.sub2_sub3
|
||||
%other_use2:vreg_64 = COPY %4.sub1_sub2
|
||||
%6:areg_64 = COPY %4.sub1_sub2
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3407881 /* reguse:AReg_64 */, %6:areg_64
|
||||
INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 3014665 /* reguse:AReg_64 */, %6:areg_64
|
||||
GLOBAL_STORE_DWORDX2 %0, %other_use1, 0, 0, implicit $exec :: (store (s64), addrspace 1)
|
||||
SI_RETURN
|
||||
...
|
||||
|
||||
@ -37,7 +37,7 @@ body: |
|
||||
; CHECK-NEXT: dead [[DS_READ_B128_gfx9_:%[0-9]+]]:vreg_128 = DS_READ_B128_gfx9 [[V_ADD_U32_e32_]], 0, 0, implicit $exec
|
||||
; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: undef [[COPY2:%[0-9]+]].sub1:vreg_512 = COPY [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def dead [[COPY1]], 1245194 /* regdef:VGPR_32 */, def dead [[COPY]].sub1, 1245193 /* reguse:VGPR_32 */, [[COPY1]], 1245193 /* reguse:VGPR_32 */, [[COPY]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def dead [[COPY1]], 1179658 /* regdef:VGPR_32 */, def dead [[COPY]].sub1, 1179657 /* reguse:VGPR_32 */, [[COPY1]], 1179657 /* reguse:VGPR_32 */, [[COPY]].sub1
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub0:vreg_512 = COPY [[COPY]].sub0
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub3:vreg_512 = COPY [[COPY]].sub3
|
||||
; CHECK-NEXT: [[COPY2:%[0-9]+]].sub2:vreg_512 = COPY undef [[V_MOV_B32_e32_1]]
|
||||
@ -63,7 +63,7 @@ body: |
|
||||
undef %11.sub0:vreg_512 = COPY %4.sub0
|
||||
%12:vgpr_32 = COPY %4.sub0
|
||||
%11.sub1:vreg_512 = COPY %4.sub1
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def dead %12:vgpr_32, 1245194 /* regdef:VGPR_32 */, def dead %4.sub1:vreg_512, 1245193 /* reguse:VGPR_32 */, %12:vgpr_32, 1245193 /* reguse:VGPR_32 */, %4.sub1:vreg_512
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def dead %12:vgpr_32, 1179658 /* regdef:VGPR_32 */, def dead %4.sub1:vreg_512, 1179657 /* reguse:VGPR_32 */, %12:vgpr_32, 1179657 /* reguse:VGPR_32 */, %4.sub1:vreg_512
|
||||
%11.sub2:vreg_512 = COPY undef %1
|
||||
%11.sub3:vreg_512 = COPY %4.sub3
|
||||
%11.sub5:vreg_512 = COPY undef %1
|
||||
|
||||
@ -40,18 +40,18 @@ body: |
|
||||
; CHECK-NEXT: bb.1:
|
||||
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def dead %11
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def dead %11
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORD undef %12:vreg_64, [[BUFFER_LOAD_DWORD_OFFEN]], 0, 0, implicit $exec :: (store (s32), addrspace 1)
|
||||
; CHECK-NEXT: [[V_MOV_B32_e32_3:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
; CHECK-NEXT: [[V_MOV_B32_e32_4:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
; CHECK-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 undef %14:vgpr_32, 0, 0, implicit $exec :: (load (s64), addrspace 3)
|
||||
; CHECK-NEXT: INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %15, 1245194 /* regdef:VGPR_32 */, def %16
|
||||
; CHECK-NEXT: INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %15, 1179658 /* regdef:VGPR_32 */, def %16
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[V_MOV_B32_e32_1]], 0, 0, implicit $exec
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_1:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[V_MOV_B32_e32_2]], 0, 0, implicit $exec
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_2:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 undef %20:vgpr_32, 0, 0, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %21, 1245194 /* regdef:VGPR_32 */, def %22
|
||||
; CHECK-NEXT: INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %21, 1179658 /* regdef:VGPR_32 */, def %22
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_3:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[V_MOV_B32_e32_2]], 0, 0, implicit $exec
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def dead [[V_MOV_B32_e32_3]], 1245194 /* regdef:VGPR_32 */, def dead [[V_MOV_B32_e32_4]], 1245193 /* reguse:VGPR_32 */, [[DS_READ_B64_gfx9_]].sub0, 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_3]](tied-def 3), 2147549193 /* reguse tiedto:$1 */, [[V_MOV_B32_e32_4]](tied-def 5), 1245193 /* reguse:VGPR_32 */, %15, 1245193 /* reguse:VGPR_32 */, %16, 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_1]], 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]], 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_3]], 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_2]]
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def dead [[V_MOV_B32_e32_3]], 1179658 /* regdef:VGPR_32 */, def dead [[V_MOV_B32_e32_4]], 1179657 /* reguse:VGPR_32 */, [[DS_READ_B64_gfx9_]].sub0, 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_3]](tied-def 3), 2147549193 /* reguse tiedto:$1 */, [[V_MOV_B32_e32_4]](tied-def 5), 1179657 /* reguse:VGPR_32 */, %15, 1179657 /* reguse:VGPR_32 */, %16, 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_1]], 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]], 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_3]], 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_2]]
|
||||
; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]].sub1:vreg_64 = COPY [[V_MOV_B32_e32_1]]
|
||||
; CHECK-NEXT: DS_WRITE_B32_gfx9 undef %28:vgpr_32, %21, 0, 0, implicit $exec :: (store (s32), addrspace 3)
|
||||
; CHECK-NEXT: DS_WRITE_B32_gfx9 undef %29:vgpr_32, %22, 0, 0, implicit $exec :: (store (s32), addrspace 3)
|
||||
@ -94,21 +94,21 @@ body: |
|
||||
%10:vgpr_32 = IMPLICIT_DEF
|
||||
|
||||
bb.1:
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %11:vgpr_32
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %11:vgpr_32
|
||||
GLOBAL_STORE_DWORD undef %12:vreg_64, %1, 0, 0, implicit $exec :: (store (s32), addrspace 1)
|
||||
%13:vreg_64 = DS_READ_B64_gfx9 undef %14:vgpr_32, 0, 0, implicit $exec :: (load (s64), addrspace 3)
|
||||
INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %15:vgpr_32, 1245194 /* regdef:VGPR_32 */, def %16:vgpr_32
|
||||
INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %15:vgpr_32, 1179658 /* regdef:VGPR_32 */, def %16:vgpr_32
|
||||
%17:vgpr_32 = DS_READ_B32_gfx9 %6, 0, 0, implicit $exec
|
||||
%18:vgpr_32 = DS_READ_B32_gfx9 %7, 0, 0, implicit $exec
|
||||
%19:vgpr_32 = DS_READ_B32_gfx9 undef %20:vgpr_32, 0, 0, implicit $exec
|
||||
INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %21:vgpr_32, 1245194 /* regdef:VGPR_32 */, def %22:vgpr_32
|
||||
INLINEASM &"def $0 $1", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %21:vgpr_32, 1179658 /* regdef:VGPR_32 */, def %22:vgpr_32
|
||||
%23:vgpr_32 = DS_READ_B32_gfx9 %7, 0, 0, implicit $exec
|
||||
%24:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
%5.sub1:vreg_64 = COPY %6
|
||||
%25:vgpr_32 = V_ADD_U32_e32 1, %10, implicit $exec
|
||||
%26:sreg_64_xexec = V_CMP_GT_U32_e64 64, %25, implicit $exec
|
||||
%27:vgpr_32 = V_MOV_B32_e32 0, implicit $exec
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def dead %24:vgpr_32, 1245194 /* regdef:VGPR_32 */, def dead %27:vgpr_32, 1245193 /* reguse:VGPR_32 */, %13.sub0:vreg_64, 2147483657 /* reguse tiedto:$0 */, %24:vgpr_32(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %27:vgpr_32(tied-def 5), 1245193 /* reguse:VGPR_32 */, %15, 1245193 /* reguse:VGPR_32 */, %16, 1245193 /* reguse:VGPR_32 */, %18, 1245193 /* reguse:VGPR_32 */, %17, 1245193 /* reguse:VGPR_32 */, %23, 1245193 /* reguse:VGPR_32 */, %19
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def dead %24:vgpr_32, 1179658 /* regdef:VGPR_32 */, def dead %27:vgpr_32, 1179657 /* reguse:VGPR_32 */, %13.sub0:vreg_64, 2147483657 /* reguse tiedto:$0 */, %24:vgpr_32(tied-def 3), 2147549193 /* reguse tiedto:$1 */, %27:vgpr_32(tied-def 5), 1179657 /* reguse:VGPR_32 */, %15, 1179657 /* reguse:VGPR_32 */, %16, 1179657 /* reguse:VGPR_32 */, %18, 1179657 /* reguse:VGPR_32 */, %17, 1179657 /* reguse:VGPR_32 */, %23, 1179657 /* reguse:VGPR_32 */, %19
|
||||
DS_WRITE_B32_gfx9 undef %28:vgpr_32, %21, 0, 0, implicit $exec :: (store (s32), addrspace 3)
|
||||
DS_WRITE_B32_gfx9 undef %29:vgpr_32, %22, 0, 0, implicit $exec :: (store (s32), addrspace 3)
|
||||
DS_WRITE_B64_gfx9 undef %30:vgpr_32, %5, 0, 0, implicit $exec :: (store (s64), addrspace 3)
|
||||
|
||||
@ -12,10 +12,10 @@ define amdgpu_kernel void @test_spill_av_class(<4 x i32> %arg) #0 {
|
||||
; GCN-NEXT: [[AV_MOV_:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 1, implicit $exec
|
||||
; GCN-NEXT: [[AV_MOV_1:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 2, implicit $exec
|
||||
; GCN-NEXT: [[V_MFMA_I32_4X4X4I8_e64_:%[0-9]+]]:areg_128 = V_MFMA_I32_4X4X4I8_e64 [[AV_MOV_]], [[AV_MOV_1]], [[COPY]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; GCN-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %14.sub0
|
||||
; GCN-NEXT: INLINEASM &"; def $0", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %14.sub0
|
||||
; GCN-NEXT: [[COPY1:%[0-9]+]]:vreg_128 = COPY [[V_MFMA_I32_4X4X4I8_e64_]]
|
||||
; GCN-NEXT: GLOBAL_STORE_DWORDX4 undef %24:vreg_64, [[COPY1]], 0, 0, implicit $exec :: (volatile store (s128) into `ptr addrspace(1) poison`, addrspace 1)
|
||||
; GCN-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2818057 /* reguse:VReg_64 */, %14
|
||||
; GCN-NEXT: INLINEASM &"; use $0", 1 /* sideeffect attdialect */, 2424841 /* reguse:VReg_64 */, %14
|
||||
; GCN-NEXT: S_ENDPGM 0
|
||||
%v0 = call i32 asm sideeffect "; def $0", "=v"()
|
||||
%tmp = insertelement <2 x i32> poison, i32 %v0, i32 0
|
||||
|
||||
@ -28,9 +28,9 @@ body: |
|
||||
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[V_MOV_B32_e32_1]], 0, 0, implicit $exec :: (load (s32), addrspace 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def [[V_MOV_B32_e32_]], 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]]
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub0, 1245194 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub1
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def [[V_MOV_B32_e32_]], 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]]
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub0, 1179658 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub1
|
||||
; CHECK-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]].sub1
|
||||
; CHECK-NEXT: $sgpr10 = S_MOV_B32 -1
|
||||
; CHECK-NEXT: S_BRANCH %bb.1
|
||||
@ -41,9 +41,9 @@ body: |
|
||||
|
||||
bb.1:
|
||||
%2:vgpr_32 = DS_READ_B32_gfx9 %1, 0, 0, implicit $exec :: (load (s32), addrspace 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %0, 2147483657 /* reguse tiedto:$0 */, %0(tied-def 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %2
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef %0.sub0, 1245194 /* regdef:VGPR_32 */, def %0.sub1
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %0, 2147483657 /* reguse tiedto:$0 */, %0(tied-def 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %2
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef %0.sub0, 1179658 /* regdef:VGPR_32 */, def %0.sub1
|
||||
S_NOP 0, implicit %0.sub1
|
||||
$sgpr10 = S_MOV_B32 -1
|
||||
S_BRANCH %bb.1
|
||||
@ -69,9 +69,9 @@ body: |
|
||||
; CHECK-NEXT: successors: %bb.1(0x80000000)
|
||||
; CHECK-NEXT: {{ $}}
|
||||
; CHECK-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[V_MOV_B32_e32_1]], 0, 0, implicit $exec :: (load (s32), addrspace 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def [[V_MOV_B32_e32_]], 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]]
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub1, 1245194 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub0
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def [[V_MOV_B32_e32_]], 2147483657 /* reguse tiedto:$0 */, [[V_MOV_B32_e32_]](tied-def 3)
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, [[DS_READ_B32_gfx9_]]
|
||||
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub1, 1179658 /* regdef:VGPR_32 */, def undef [[V_MOV_B32_e32_]].sub0
|
||||
; CHECK-NEXT: S_NOP 0, implicit [[V_MOV_B32_e32_]].sub1
|
||||
; CHECK-NEXT: $sgpr10 = S_MOV_B32 -1
|
||||
; CHECK-NEXT: S_BRANCH %bb.1
|
||||
@ -82,9 +82,9 @@ body: |
|
||||
|
||||
bb.1:
|
||||
%2:vgpr_32 = DS_READ_B32_gfx9 %1, 0, 0, implicit $exec :: (load (s32), addrspace 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %0, 2147483657 /* reguse tiedto:$0 */, %0(tied-def 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245193 /* reguse:VGPR_32 */, %2
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1245194 /* regdef:VGPR_32 */, def %0.sub1, 1245194 /* regdef:VGPR_32 */, def undef %0.sub0
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %0, 2147483657 /* reguse tiedto:$0 */, %0(tied-def 3)
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179657 /* reguse:VGPR_32 */, %2
|
||||
INLINEASM &"", 1 /* sideeffect attdialect */, 1179658 /* regdef:VGPR_32 */, def %0.sub1, 1179658 /* regdef:VGPR_32 */, def undef %0.sub0
|
||||
S_NOP 0, implicit %0.sub1
|
||||
$sgpr10 = S_MOV_B32 -1
|
||||
S_BRANCH %bb.1
|
||||
|
||||
56
llvm/test/TableGen/ArtificialRegs.td
Normal file
56
llvm/test/TableGen/ArtificialRegs.td
Normal file
@ -0,0 +1,56 @@
|
||||
// RUN: llvm-tblgen -gen-register-info -register-info-debug -I %p/../../include %s -o - 2>&1 >/dev/null | FileCheck %s --implicit-check-not=RegisterClass
|
||||
|
||||
include "llvm/Target/Target.td"
|
||||
|
||||
def lo : SubRegIndex<0, 32>;
|
||||
def hi : SubRegIndex<32, 32>;
|
||||
|
||||
def R0 : Register<"r0">;
|
||||
def R1 : Register<"r1">;
|
||||
|
||||
def A : Register<"a"> {
|
||||
let isArtificial = 1;
|
||||
}
|
||||
|
||||
def D0 : Register<"d0"> {
|
||||
let SubRegs = [R0, R1];
|
||||
let SubRegIndices = [lo, hi];
|
||||
}
|
||||
|
||||
// Same artificial registers can participate in classes of
|
||||
// registers and their sub-registers.
|
||||
def RA : RegisterClass<"R", [i32], 32, (add R0, R1, A)>;
|
||||
def DA : RegisterClass<"D", [i64], 64, (add D0, A)>;
|
||||
|
||||
// Make sure there are no DA_and_RA and DA_with_hi kind of
|
||||
// classes that only contain artificial registers or are inferred
|
||||
// copies of already existing register classes that only differ
|
||||
// in the presence of artificial regsiters.
|
||||
//
|
||||
// CHECK: RegisterClass RA:
|
||||
// CHECK-NEXT: SpillSize:
|
||||
// CHECK-NEXT: SpillAlignment:
|
||||
// CHECK-NEXT: NumRegs:
|
||||
// CHECK-NEXT: LaneMask:
|
||||
// CHECK-NEXT: HasDisjunctSubRegs:
|
||||
// CHECK-NEXT: CoveredBySubRegs:
|
||||
// CHECK-NEXT: Allocatable:
|
||||
// CHECK-NEXT: AllocationPriority:
|
||||
// CHECK-NEXT: BaseClassOrder:
|
||||
// CHECK-NEXT: Regs: A R0 R1{{$}}
|
||||
// CHECK-NEXT: SubClasses: RA{{$}}
|
||||
//
|
||||
// CHECK: RegisterClass DA:
|
||||
// CHECK-NEXT: SpillSize:
|
||||
// CHECK-NEXT: SpillAlignment:
|
||||
// CHECK-NEXT: NumRegs:
|
||||
// CHECK-NEXT: LaneMask:
|
||||
// CHECK-NEXT: HasDisjunctSubRegs:
|
||||
// CHECK-NEXT: CoveredBySubRegs:
|
||||
// CHECK-NEXT: Allocatable:
|
||||
// CHECK-NEXT: AllocationPriority:
|
||||
// CHECK-NEXT: BaseClassOrder:
|
||||
// CHECK-NEXT: Regs: A D0{{$}}
|
||||
// CHECK-NEXT: SubClasses: DA{{$}}
|
||||
|
||||
def TestTarget : Target;
|
||||
@ -7,10 +7,10 @@ define i64 @i64_test(i64 %i) nounwind readnone {
|
||||
; CHECK-NEXT: t0: ch,glue = EntryToken
|
||||
; CHECK-NEXT: t2: i32,ch = CopyFromReg # D:1 t0, Register:i32 %8
|
||||
; CHECK-NEXT: t4: i32,ch = CopyFromReg # D:1 t0, Register:i32 %9
|
||||
; CHECK-NEXT: t51: i64 = REG_SEQUENCE # D:1 TargetConstant:i32<66>, t2, TargetConstant:i32<3>, t4, TargetConstant:i32<11>
|
||||
; CHECK-NEXT: t51: i64 = REG_SEQUENCE # D:1 TargetConstant:i32<60>, t2, TargetConstant:i32<3>, t4, TargetConstant:i32<11>
|
||||
; CHECK-NEXT: t27: i32,ch = BUFFER_LOAD_DWORD_OFFEN<Mem:(dereferenceable load (s32) from %ir.loc, align 8, addrspace 5)> TargetFrameIndex:i32<0>, Register:v4i32 $sgpr0_sgpr1_sgpr2_sgpr3, TargetConstant:i32<0>, TargetConstant:i32<0>, TargetConstant:i32<0>, TargetConstant:i1<0>, t0
|
||||
; CHECK-NEXT: t30: i32,ch = BUFFER_LOAD_DWORD_OFFEN<Mem:(dereferenceable load (s32) from %ir.loc + 4, basealign 8, addrspace 5)> TargetFrameIndex:i32<0>, Register:v4i32 $sgpr0_sgpr1_sgpr2_sgpr3, TargetConstant:i32<0>, TargetConstant:i32<4>, TargetConstant:i32<0>, TargetConstant:i1<0>, t0
|
||||
; CHECK-NEXT: t33: v2i32 = REG_SEQUENCE # D:1 TargetConstant:i32<42>, t27, TargetConstant:i32<3>, t30, TargetConstant:i32<11>
|
||||
; CHECK-NEXT: t33: v2i32 = REG_SEQUENCE # D:1 TargetConstant:i32<36>, t27, TargetConstant:i32<3>, t30, TargetConstant:i32<11>
|
||||
; CHECK-NEXT: t10: i64 = V_ADD_U64_PSEUDO # D:1 t51, t33
|
||||
; CHECK-NEXT: t24: i32 = EXTRACT_SUBREG # D:1 t10, TargetConstant:i32<3>
|
||||
; CHECK-NEXT: t17: ch,glue = CopyToReg # D:1 t0, Register:i32 $vgpr0, t24
|
||||
|
||||
@ -844,7 +844,30 @@ unsigned CodeGenRegisterClass::getWeight(const CodeGenRegBank &RegBank) const {
|
||||
bool CodeGenRegisterClass::Key::operator<(
|
||||
const CodeGenRegisterClass::Key &B) const {
|
||||
assert(Members && B.Members);
|
||||
return std::tie(*Members, RSI) < std::tie(*B.Members, B.RSI);
|
||||
if (!IgnoreArtificialMembers)
|
||||
return std::tie(*Members, RSI) < std::tie(*B.Members, B.RSI);
|
||||
|
||||
// Do the same lexicographical comparison, but ignoring
|
||||
// artificial registers.
|
||||
auto IA = Members->begin(), EA = Members->end();
|
||||
auto IB = B.Members->begin(), EB = B.Members->end();
|
||||
while (IA != EA && IB != EB) {
|
||||
if ((*IA)->Artificial) {
|
||||
++IA;
|
||||
continue;
|
||||
}
|
||||
if ((*IB)->Artificial) {
|
||||
++IB;
|
||||
continue;
|
||||
}
|
||||
if (*IA != *IB)
|
||||
return *IA < *IB;
|
||||
++IA;
|
||||
++IB;
|
||||
}
|
||||
if (IA == EA && IB == EB)
|
||||
return RSI < B.RSI;
|
||||
return IA == EA;
|
||||
}
|
||||
|
||||
// Returns true if RC is a strict subclass.
|
||||
@ -1284,7 +1307,7 @@ void CodeGenRegBank::addToMaps(CodeGenRegisterClass *RC) {
|
||||
|
||||
// Duplicate classes are rejected by insert().
|
||||
// That's OK, we only care about the properties handled by CGRC::Key.
|
||||
CodeGenRegisterClass::Key K(*RC);
|
||||
CodeGenRegisterClass::Key K(*RC, /*IgnoreArtificialMembers=*/true);
|
||||
Key2RC.try_emplace(K, RC);
|
||||
}
|
||||
|
||||
@ -1294,7 +1317,8 @@ CodeGenRegBank::getOrCreateSubClass(const CodeGenRegisterClass *RC,
|
||||
const CodeGenRegister::Vec *Members,
|
||||
StringRef Name) {
|
||||
// Synthetic sub-class has the same size and alignment as RC.
|
||||
CodeGenRegisterClass::Key K(Members, RC->RSI);
|
||||
CodeGenRegisterClass::Key K(Members, RC->RSI,
|
||||
/*IgnoreArtificialMembers=*/true);
|
||||
RCKeyMap::const_iterator FoundI = Key2RC.find(K);
|
||||
if (FoundI != Key2RC.end())
|
||||
return {FoundI->second, false};
|
||||
@ -1741,7 +1765,16 @@ static void computeUberSets(std::vector<UberRegSet> &UberSets,
|
||||
if (!RegClass.Allocatable)
|
||||
continue;
|
||||
|
||||
const CodeGenRegister::Vec &Regs = RegClass.getMembers();
|
||||
// Ignore artificial registers. They may be members of register
|
||||
// classes that together include registers and their subregisters,
|
||||
// in which case it is impossible to normalize the weights of
|
||||
// their register units.
|
||||
CodeGenRegister::Vec Regs;
|
||||
for (const CodeGenRegister *Reg : RegClass.getMembers()) {
|
||||
if (!Reg->Artificial)
|
||||
Regs.push_back(Reg);
|
||||
}
|
||||
|
||||
if (Regs.empty())
|
||||
continue;
|
||||
|
||||
@ -2357,6 +2390,13 @@ void CodeGenRegBank::inferCommonSubClass(CodeGenRegisterClass *RC) {
|
||||
if (Intersection.empty())
|
||||
continue;
|
||||
|
||||
// Skip casses where the intersection is composed of artificial
|
||||
// registers.
|
||||
if (llvm::all_of(Intersection, [](const CodeGenRegister *Reg) {
|
||||
return Reg->Artificial;
|
||||
}))
|
||||
continue;
|
||||
|
||||
// If RC1 and RC2 have different spill sizes or alignments, use the
|
||||
// stricter one for sub-classing. If they are equal, prefer RC1.
|
||||
if (RC2->RSI.hasStricterSpillThan(RC1->RSI))
|
||||
@ -2396,7 +2436,11 @@ void CodeGenRegBank::inferSubClassWithSubReg(CodeGenRegisterClass *RC) {
|
||||
if (I == SRSets.end())
|
||||
continue;
|
||||
// In most cases, all RC registers support the SubRegIndex.
|
||||
if (I->second.size() == RC->getMembers().size()) {
|
||||
auto IsNotArtificial = [](const CodeGenRegister *R) {
|
||||
return !R->Artificial;
|
||||
};
|
||||
if (I->second.size() ==
|
||||
(size_t)count_if(RC->getMembers(), IsNotArtificial)) {
|
||||
RC->setSubClassWithSubReg(&SubIdx, RC);
|
||||
continue;
|
||||
}
|
||||
@ -2444,6 +2488,8 @@ void CodeGenRegBank::inferMatchingSuperRegClass(
|
||||
TopoSigs.reset();
|
||||
for (const CodeGenRegister *Super : RC->getMembers()) {
|
||||
const CodeGenRegister *Sub = Super->getSubRegs().find(SubIdx)->second;
|
||||
if (Super->Artificial)
|
||||
continue;
|
||||
assert(Sub && "Missing sub-register");
|
||||
SubRegs.push_back(Sub);
|
||||
TopoSigs.set(Sub->getTopoSig());
|
||||
@ -2464,7 +2510,13 @@ void CodeGenRegBank::inferMatchingSuperRegClass(
|
||||
continue;
|
||||
// Compute the subset of RC that maps into SubRC.
|
||||
CodeGenRegister::Vec SubSetVec;
|
||||
for (const auto &[Sub, Super] : zip_equal(SubRegs, RC->getMembers())) {
|
||||
auto IsNotArtificial = [](const CodeGenRegister *R) {
|
||||
return !R->Artificial;
|
||||
};
|
||||
auto NonArtificialMembers =
|
||||
make_filter_range(RC->getMembers(), IsNotArtificial);
|
||||
for (const auto &[Sub, Super] :
|
||||
zip_equal(SubRegs, NonArtificialMembers)) {
|
||||
if (SubRC.contains(Sub))
|
||||
SubSetVec.push_back(Super);
|
||||
}
|
||||
@ -2473,7 +2525,8 @@ void CodeGenRegBank::inferMatchingSuperRegClass(
|
||||
continue;
|
||||
|
||||
// RC injects completely into SubRC.
|
||||
if (SubSetVec.size() == RC->getMembers().size()) {
|
||||
if (SubSetVec.size() ==
|
||||
(size_t)count_if(RC->getMembers(), IsNotArtificial)) {
|
||||
SubRC.addSuperRegClass(SubIdx, RC);
|
||||
|
||||
// We can skip checking subregister indices that can be composed from
|
||||
|
||||
@ -503,11 +503,20 @@ public:
|
||||
const CodeGenRegister::Vec *Members;
|
||||
RegSizeInfoByHwMode RSI;
|
||||
|
||||
Key(const CodeGenRegister::Vec *M, const RegSizeInfoByHwMode &I)
|
||||
: Members(M), RSI(I) {}
|
||||
// Ignore artificial registers when comparing classes. We use this
|
||||
// to find existing classes that contain the same non-artificial
|
||||
// members, but may differ in presence of artificial ones, thus
|
||||
// avoiding creating extra register classes for codegen needs.
|
||||
bool IgnoreArtificialMembers;
|
||||
|
||||
Key(const CodeGenRegisterClass &RC)
|
||||
: Members(&RC.getMembers()), RSI(RC.RSI) {}
|
||||
Key(const CodeGenRegister::Vec *M, const RegSizeInfoByHwMode &I,
|
||||
bool IgnoreArtificialMembers = false)
|
||||
: Members(M), RSI(I), IgnoreArtificialMembers(IgnoreArtificialMembers) {
|
||||
}
|
||||
|
||||
Key(const CodeGenRegisterClass &RC, bool IgnoreArtificialMembers = false)
|
||||
: Members(&RC.getMembers()), RSI(RC.RSI),
|
||||
IgnoreArtificialMembers(IgnoreArtificialMembers) {}
|
||||
|
||||
// Lexicographical order of (Members, RegSizeInfoByHwMode).
|
||||
bool operator<(const Key &) const;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user