[llvm] AMDGPU/GlobalISel: Regbanklegalize rules for G_UNMERGE_VALUES (PR #171653)
Petar Avramovic via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 04:04:24 PST 2025
================
@@ -137,34 +137,20 @@ define amdgpu_ps void @fpext_f16_to_f64_div(half %a, ptr addrspace(1) %ptr) {
}
define amdgpu_ps <2 x float> @fpext_v2f16_to_v2f32_uniform(<2 x half> inreg %a) {
-; GFX11-FAKE16-LABEL: fpext_v2f16_to_v2f32_uniform:
-; GFX11-FAKE16: ; %bb.0:
-; GFX11-FAKE16-NEXT: s_lshr_b32 s1, s0, 16
-; GFX11-FAKE16-NEXT: v_cvt_f32_f16_e32 v0, s0
-; GFX11-FAKE16-NEXT: v_cvt_f32_f16_e32 v1, s1
-; GFX11-FAKE16-NEXT: ; return to shader part epilog
-;
-; GFX11-TRUE16-LABEL: fpext_v2f16_to_v2f32_uniform:
-; GFX11-TRUE16: ; %bb.0:
-; GFX11-TRUE16-NEXT: v_cvt_f32_f16_e32 v0, s0
----------------
petar-avramovic wrote:
This was a bug.
There were _lo and _hi subreg copies, but they got lost at some point since input was a copy from physical sgpr. After that subreg copies looked like 32 bit sgpr copy.
Maybe true 16 is missing assert somewhere?
https://github.com/llvm/llvm-project/pull/171653
More information about the llvm-commits
mailing list