| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| # RUN: llc -march=amdgcn -mcpu=gfx1010 %s -run-pass twoaddressinstruction -verify-machineinstrs -o - | FileCheck --check-prefixes=GFX10 %s | ||
|
|
||
| # GFX10-LABEL: name: test_fmamk_reg_imm_f16 | ||
| # GFX10: %2:vgpr_32 = IMPLICIT_DEF | ||
| # GFX10-NOT: V_MOV_B32 | ||
| # GFX10: V_FMAMK_F16 killed %0.sub0, 1078523331, killed %1, implicit $mode, implicit $exec | ||
| --- | ||
| name: test_fmamk_reg_imm_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| - { id: 3, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| %0 = IMPLICIT_DEF | ||
| %1 = COPY %0.sub1 | ||
| %2 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %3 = V_FMAC_F16_e32 killed %0.sub0, %2, killed %1, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| # GFX10-LABEL: name: test_fmamk_imm_reg_f16 | ||
| # GFX10: %2:vgpr_32 = IMPLICIT_DEF | ||
| # GFX10-NOT: V_MOV_B32 | ||
| # GFX10: V_FMAMK_F16 killed %0.sub0, 1078523331, killed %1, implicit $mode, implicit $exec | ||
| --- | ||
| name: test_fmamk_imm_reg_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| - { id: 3, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| %0 = IMPLICIT_DEF | ||
| %1 = COPY %0.sub1 | ||
| %2 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %3 = V_FMAC_F16_e32 %2, killed %0.sub0, killed %1, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| # GFX10-LABEL: name: test_fmaak_f16 | ||
| # GFX10: %1:vgpr_32 = IMPLICIT_DEF | ||
| # GFX10-NOT: V_MOV_B32 | ||
| # GFX10: V_FMAAK_F16 killed %0.sub0, %0.sub1, 1078523331, implicit $mode, implicit $exec | ||
| --- | ||
| name: test_fmaak_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| %0 = IMPLICIT_DEF | ||
| %1 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %2 = V_FMAC_F16_e32 killed %0.sub0, %0.sub1, %1, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| # GFX10-LABEL: name: test_fmaak_inline_literal_f16 | ||
| # GFX10: %1:vgpr_32 = IMPLICIT_DEF | ||
| # GFX10-NOT: V_MOV_B32 | ||
| # GFX10: %2:vgpr_32 = V_FMAAK_F16 16384, killed %0, 49664, implicit $mode, implicit $exec | ||
|
|
||
| --- | ||
| name: test_fmaak_inline_literal_f16 | ||
| tracksRegLiveness: true | ||
| liveins: | ||
| - { reg: '$vgpr0', virtual-reg: '%0' } | ||
| body: | | ||
| bb.0: | ||
| liveins: $vgpr0 | ||
| %0:vgpr_32 = COPY killed $vgpr0 | ||
| %1:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec | ||
| %2:vgpr_32 = V_FMAC_F16_e32 16384, killed %0, %1, implicit $mode, implicit $exec | ||
| S_ENDPGM 0 | ||
| ... | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py | ||
| # RUN: llc -march=amdgcn -mcpu=gfx1100 %s -run-pass twoaddressinstruction -verify-machineinstrs -o - | FileCheck --check-prefixes=GFX11 %s | ||
|
|
||
| --- | ||
| name: test_fmamk_reg_imm_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| - { id: 3, class: vgpr_32 } | ||
| - { id: 4, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| ; GFX11-LABEL: name: test_fmamk_reg_imm_f16 | ||
| ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF | ||
| ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub1 | ||
| ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub0 | ||
| ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| ; GFX11-NEXT: [[V_FMA_F16_gfx9_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_e64 0, killed [[COPY1]], 0, [[V_MOV_B32_e32_]], 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec | ||
| %0 = IMPLICIT_DEF | ||
| %1 = COPY %0.sub1 | ||
| %2 = COPY %0.sub0 | ||
| %3 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %4 = V_FMAC_F16_t16_e64 0, killed %2, 0, %3, 0, killed %1, 0, 0, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| --- | ||
| name: test_fmamk_imm_reg_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| - { id: 3, class: vgpr_32 } | ||
| - { id: 4, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| ; GFX11-LABEL: name: test_fmamk_imm_reg_f16 | ||
| ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF | ||
| ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub1 | ||
| ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub0 | ||
| ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| ; GFX11-NEXT: [[V_FMA_F16_gfx9_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_e64 0, [[COPY1]], 0, killed [[V_MOV_B32_e32_]], 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec | ||
| %0 = IMPLICIT_DEF | ||
| %1 = COPY %0.sub1 | ||
| %2 = COPY %0.sub0 | ||
| %3 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %4 = V_FMAC_F16_t16_e64 0, %2, 0, killed %3, 0, killed %1, 0, 0, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| --- | ||
| name: test_fmaak_f16 | ||
| registers: | ||
| - { id: 0, class: vreg_64 } | ||
| - { id: 1, class: vgpr_32 } | ||
| - { id: 2, class: vgpr_32 } | ||
| - { id: 3, class: vgpr_32 } | ||
| - { id: 4, class: vgpr_32 } | ||
| body: | | ||
| bb.0: | ||
| ; GFX11-LABEL: name: test_fmaak_f16 | ||
| ; GFX11: [[DEF:%[0-9]+]]:vreg_64 = IMPLICIT_DEF | ||
| ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub0 | ||
| ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY [[DEF]].sub1 | ||
| ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| ; GFX11-NEXT: [[V_FMA_F16_gfx9_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_e64 0, killed [[COPY]], 0, [[COPY1]], 0, [[V_MOV_B32_e32_]], 0, 0, implicit $mode, implicit $exec | ||
| %0 = IMPLICIT_DEF | ||
| %1 = COPY %0.sub0 | ||
| %2 = COPY %0.sub1 | ||
| %3 = V_MOV_B32_e32 1078523331, implicit $exec | ||
| %4 = V_FMAC_F16_t16_e64 0, killed %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec | ||
| ... | ||
|
|
||
| --- | ||
| name: test_fmaak_inline_literal_f16 | ||
| tracksRegLiveness: true | ||
| liveins: | ||
| - { reg: '$vgpr0', virtual-reg: '%0' } | ||
| body: | | ||
| bb.0: | ||
| liveins: $vgpr0 | ||
| ; GFX11-LABEL: name: test_fmaak_inline_literal_f16 | ||
| ; GFX11: liveins: $vgpr0 | ||
| ; GFX11-NEXT: {{ $}} | ||
| ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY killed $vgpr0 | ||
| ; GFX11-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec | ||
| ; GFX11-NEXT: [[V_FMA_F16_gfx9_e64_:%[0-9]+]]:vgpr_32 = V_FMA_F16_gfx9_e64 0, 16384, 0, killed [[COPY]], 0, [[V_MOV_B32_e32_]], 0, 0, implicit $mode, implicit $exec | ||
| ; GFX11-NEXT: S_ENDPGM 0 | ||
| %0:vgpr_32 = COPY killed $vgpr0 | ||
| %1:vgpr_32 = V_MOV_B32_e32 49664, implicit $exec | ||
| %2:vgpr_32 = V_FMAC_F16_t16_e64 0, 16384, 0, killed %0, 0, %1, 0, 0, implicit $mode, implicit $exec | ||
| S_ENDPGM 0 | ||
| ... | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py | ||
| # RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass si-mode-register %s -o - | FileCheck %s --check-prefixes=CHECK | ||
| # RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass si-mode-register %s -o - | FileCheck %s --check-prefixes=CHECK | ||
| # RUN: llc -march=amdgcn -mcpu=gfx1100 -run-pass si-mode-register %s -o - | FileCheck %s --check-prefixes=GFX11 | ||
|
|
||
| --- | ||
| name: ftrunc_upward | ||
|
|
||
| body: | | ||
| bb.0: | ||
| liveins: $sgpr0 | ||
| ; CHECK-LABEL: name: ftrunc_upward | ||
| ; CHECK: liveins: $sgpr0 | ||
| ; CHECK-NEXT: {{ $}} | ||
| ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| ; CHECK-NEXT: S_SETREG_IMM32_B32 1, 129, implicit-def $mode, implicit $mode | ||
| ; CHECK-NEXT: $vgpr1 = V_CVT_F16_F32_e32 $vgpr0, implicit $mode, implicit $exec | ||
| ; CHECK-NEXT: S_ENDPGM 0 | ||
| ; GFX11-LABEL: name: ftrunc_upward | ||
| ; GFX11: liveins: $sgpr0 | ||
| ; GFX11-NEXT: {{ $}} | ||
| ; GFX11-NEXT: $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| ; GFX11-NEXT: S_SETREG_IMM32_B32 1, 129, implicit-def $mode, implicit $mode | ||
| ; GFX11-NEXT: $vgpr1 = V_CVT_F16_F32_t16_e64 0, $vgpr0, 0, 0, implicit $mode, implicit $exec | ||
| ; GFX11-NEXT: S_ENDPGM 0 | ||
| $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| $vgpr1 = FPTRUNC_UPWARD_PSEUDO $vgpr0, implicit $mode, implicit $exec | ||
| S_ENDPGM 0 | ||
| ... | ||
| --- | ||
| name: ftrunc_downward | ||
|
|
||
| body: | | ||
| bb.0: | ||
| liveins: $sgpr0 | ||
| ; CHECK-LABEL: name: ftrunc_downward | ||
| ; CHECK: liveins: $sgpr0 | ||
| ; CHECK-NEXT: {{ $}} | ||
| ; CHECK-NEXT: $vgpr1 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| ; CHECK-NEXT: S_SETREG_IMM32_B32 1, 193, implicit-def $mode, implicit $mode | ||
| ; CHECK-NEXT: $vgpr0 = V_CVT_F16_F32_e32 $vgpr1, implicit $mode, implicit $exec | ||
| ; CHECK-NEXT: S_ENDPGM 0 | ||
| ; GFX11-LABEL: name: ftrunc_downward | ||
| ; GFX11: liveins: $sgpr0 | ||
| ; GFX11-NEXT: {{ $}} | ||
| ; GFX11-NEXT: $vgpr1 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| ; GFX11-NEXT: S_SETREG_IMM32_B32 1, 193, implicit-def $mode, implicit $mode | ||
| ; GFX11-NEXT: $vgpr0 = V_CVT_F16_F32_t16_e64 0, $vgpr1, 0, 0, implicit $mode, implicit $exec | ||
| ; GFX11-NEXT: S_ENDPGM 0 | ||
| $vgpr1 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec | ||
| $vgpr0 = FPTRUNC_DOWNWARD_PSEUDO $vgpr1, implicit $mode, implicit $exec | ||
| S_ENDPGM 0 | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| # RUN: not llc -march=amdgcn -mcpu=gfx1100 -debug-only=regalloc -start-before=greedy,0 -stop-after=virtregrewriter,1 -verify-machineinstrs -o /dev/null %s 2>&1 | FileCheck --check-prefixes=CHECK %s | ||
| # REQUIRES: asserts | ||
|
|
||
| --- | | ||
| define amdgpu_ps void @e32() { | ||
| ret void | ||
| } | ||
| ... | ||
|
|
||
|
|
||
| --- | ||
| name: e32 | ||
| tracksRegLiveness: true | ||
| machineFunctionInfo: | ||
| stackPtrOffsetReg: $sgpr32 | ||
|
|
||
| body: | | ||
| bb.0: | ||
| liveins: $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, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79, $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95, $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111, $vgpr112, $vgpr113, $vgpr114, $vgpr115, $vgpr116, $vgpr117, $vgpr118, $vgpr119, $vgpr120, $vgpr121, $vgpr122, $vgpr123, $vgpr124, $vgpr125, $vgpr126, $vgpr127 | ||
| ; CHECK: error: ran out of registers during register allocation | ||
| ; CHECK: [[REG1:vgpr[0-9]+]] = V_ADD_F16_t16_e32 | ||
| ; CHECK: SI_SPILL_V32_SAVE $[[REG1]] | ||
| %0:vgpr_32_lo128 = V_ADD_F16_t16_e32 $vgpr0, $vgpr1, implicit $exec, implicit $mode | ||
| S_NOP 0, implicit $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 | ||
| S_NOP 0, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47 | ||
| S_NOP 0, implicit $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 | ||
| S_NOP 0, implicit $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79 | ||
| S_NOP 0, implicit $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95 | ||
| S_NOP 0, implicit $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111 | ||
| S_NOP 0, implicit $vgpr112, implicit $vgpr113, implicit $vgpr114, implicit $vgpr115, implicit $vgpr116, implicit $vgpr117, implicit $vgpr118, implicit $vgpr119, implicit $vgpr120, implicit $vgpr121, implicit $vgpr122, implicit $vgpr123, implicit $vgpr124, implicit $vgpr125, implicit $vgpr126, implicit $vgpr127 | ||
| S_ENDPGM 0, implicit %0 | ||
| ... | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # RUN: llc -march=amdgcn -mcpu=gfx1010 -start-before=greedy,0 -stop-after=virtregrewriter,1 -verify-machineinstrs -o - %s | FileCheck --check-prefixes=GCN %s | ||
|
|
||
| --- | | ||
| define amdgpu_ps void @e32() #0 { | ||
| ret void | ||
| } | ||
|
|
||
| define amdgpu_ps void @e64() #0 { | ||
| ret void | ||
| } | ||
|
|
||
| ... | ||
|
|
||
|
|
||
| --- | ||
| name: e32 | ||
| tracksRegLiveness: true | ||
|
|
||
| body: | | ||
| bb.0: | ||
| liveins: $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, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79, $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95, $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111, $vgpr112, $vgpr113, $vgpr114, $vgpr115, $vgpr116, $vgpr117, $vgpr118, $vgpr119, $vgpr120, $vgpr121, $vgpr122, $vgpr123, $vgpr124, $vgpr125, $vgpr126, $vgpr127 | ||
| ; GCN-LABEL: name: e32 | ||
| ; GCN: renamable $vgpr128 = V_ADD_F16_e32 $vgpr0, $vgpr1, implicit $exec, implicit $mode | ||
| %0:vgpr_32 = V_ADD_F16_e32 $vgpr0, $vgpr1, implicit $exec, implicit $mode | ||
| S_NOP 0, implicit $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 | ||
| S_NOP 0, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47 | ||
| S_NOP 0, implicit $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 | ||
| S_NOP 0, implicit $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79 | ||
| S_NOP 0, implicit $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95 | ||
| S_NOP 0, implicit $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111 | ||
| S_NOP 0, implicit $vgpr112, implicit $vgpr113, implicit $vgpr114, implicit $vgpr115, implicit $vgpr116, implicit $vgpr117, implicit $vgpr118, implicit $vgpr119, implicit $vgpr120, implicit $vgpr121, implicit $vgpr122, implicit $vgpr123, implicit $vgpr124, implicit $vgpr125, implicit $vgpr126, implicit $vgpr127 | ||
| S_ENDPGM 0, implicit %0 | ||
| ... | ||
|
|
||
| --- | ||
| name: e64 | ||
| tracksRegLiveness: true | ||
|
|
||
| body: | | ||
| bb.0: | ||
| liveins: $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, $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47, $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63, $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79, $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95, $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111, $vgpr112, $vgpr113, $vgpr114, $vgpr115, $vgpr116, $vgpr117, $vgpr118, $vgpr119, $vgpr120, $vgpr121, $vgpr122, $vgpr123, $vgpr124, $vgpr125, $vgpr126, $vgpr127 | ||
| ; GCN-LABEL: name: e64 | ||
| ; GCN: renamable $vgpr128 = V_ADD_F16_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec, implicit $mode | ||
| %0:vgpr_32 = V_ADD_F16_e64 0, $vgpr0, 0, $vgpr1, 0, 0, implicit $exec, implicit $mode | ||
| S_NOP 0, implicit $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 | ||
| S_NOP 0, implicit $vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38_vgpr39_vgpr40_vgpr41_vgpr42_vgpr43_vgpr44_vgpr45_vgpr46_vgpr47 | ||
| S_NOP 0, implicit $vgpr48_vgpr49_vgpr50_vgpr51_vgpr52_vgpr53_vgpr54_vgpr55_vgpr56_vgpr57_vgpr58_vgpr59_vgpr60_vgpr61_vgpr62_vgpr63 | ||
| S_NOP 0, implicit $vgpr64_vgpr65_vgpr66_vgpr67_vgpr68_vgpr69_vgpr70_vgpr71_vgpr72_vgpr73_vgpr74_vgpr75_vgpr76_vgpr77_vgpr78_vgpr79 | ||
| S_NOP 0, implicit $vgpr80_vgpr81_vgpr82_vgpr83_vgpr84_vgpr85_vgpr86_vgpr87_vgpr88_vgpr89_vgpr90_vgpr91_vgpr92_vgpr93_vgpr94_vgpr95 | ||
| S_NOP 0, implicit $vgpr96_vgpr97_vgpr98_vgpr99_vgpr100_vgpr101_vgpr102_vgpr103_vgpr104_vgpr105_vgpr106_vgpr107_vgpr108_vgpr109_vgpr110_vgpr111 | ||
| S_NOP 0, implicit $vgpr112, implicit $vgpr113, implicit $vgpr114, implicit $vgpr115, implicit $vgpr116, implicit $vgpr117, implicit $vgpr118, implicit $vgpr119, implicit $vgpr120, implicit $vgpr121, implicit $vgpr122, implicit $vgpr123, implicit $vgpr124, implicit $vgpr125, implicit $vgpr126, implicit $vgpr127 | ||
| S_ENDPGM 0, implicit %0 | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,228 @@ | ||
| // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-wavefrontsize64 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=error %s | ||
| // RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=-wavefrontsize32,+wavefrontsize64 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=error %s | ||
|
|
||
| v_add_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmaak_f16_e32 v255, v1, v2, 0xfe0b | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmamk_f16_e32 v255, v1, 0xfe0b, v3 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_e32 v255, v1, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmaak_f16_e32 v5, v255, v2, 0xfe0b | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmamk_f16_e32 v5, v255, 0xfe0b, v3 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_e32 v5, v255, v2 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmaak_f16_e32 v5, v1, v255, 0xfe0b | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmamk_f16_e32 v5, v1, 0xfe0b, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_e32 v5, v1, v255 | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_ldexp_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_add_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_fmac_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_max_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_min_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_mul_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_sub_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
||
| v_subrev_f16_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: error: operands are not valid for this GPU or mode | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,192 @@ | ||
| // RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,-wavefrontsize64 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=_e32 %s | ||
| // RUN: llvm-mc -arch=amdgcn -mcpu=gfx1100 -mattr=-wavefrontsize32,+wavefrontsize64 -show-encoding %s 2>&1 | FileCheck --check-prefix=GFX11 --implicit-check-not=_e32 %s | ||
|
|
||
| v_add_f16 v255, v1, v2 | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_fmac_f16 v255, v1, v2 | ||
| // GFX11: v_fmac_f16_e64 | ||
|
|
||
| v_ldexp_f16 v255, v1, v2 | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v255, v1, v2 | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v255, v1, v2 | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v255, v1, v2 | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v255, v1, v2 | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v255, v1, v2 | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v255, v2 | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_fmac_f16 v5, v255, v2 | ||
| // GFX11: v_fmac_f16_e64 | ||
|
|
||
| v_ldexp_f16 v5, v255, v2 | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v5, v255, v2 | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v255, v2 | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v255, v2 | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v255, v2 | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v255, v2 | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v1, v255 | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_fmac_f16 v5, v1, v255 | ||
| // GFX11: v_fmac_f16_e64 | ||
|
|
||
| v_max_f16 v5, v1, v255 | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v1, v255 | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v1, v255 | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v1, v255 | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v1, v255 | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_ldexp_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v255, v1, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_ldexp_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v255, v2 quad_perm:[3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_max_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v1, v255 quad_perm:[3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_ldexp_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v255, v1, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_ldexp_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_ldexp_f16_e64 | ||
|
|
||
| v_max_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v255, v2 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|
||
| v_add_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_add_f16_e64 | ||
|
|
||
| v_max_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_max_f16_e64 | ||
|
|
||
| v_min_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_min_f16_e64 | ||
|
|
||
| v_mul_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_mul_f16_e64 | ||
|
|
||
| v_sub_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_sub_f16_e64 | ||
|
|
||
| v_subrev_f16 v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] | ||
| // GFX11: v_subrev_f16_e64 | ||
|
|