[llvm] [GlobalIsel] Combine G_UNMERGE_VALUES from opaque vectors into scalars (PR #113040)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 19 07:35:52 PDT 2024
================
@@ -34,10 +34,14 @@ define amdgpu_ps <4 x float> @sample_d_1d_g16_a16(<8 x i32> inreg %rsrc, <4 x i3
; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)
; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)
; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)
- ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)
- ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)
- ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)
- ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)
+ ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY [[UV]](s32)
+ ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY [[UV1]](s32)
+ ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY [[UV2]](s32)
+ ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY [[UV3]](s32)
+ ; GFX10-NEXT: $vgpr0 = COPY [[COPY15]](s32)
+ ; GFX10-NEXT: $vgpr1 = COPY [[COPY16]](s32)
+ ; GFX10-NEXT: $vgpr2 = COPY [[COPY17]](s32)
+ ; GFX10-NEXT: $vgpr3 = COPY [[COPY18]](s32)
----------------
arsenm wrote:
Ugly avoid able copy
https://github.com/llvm/llvm-project/pull/113040
More information about the llvm-commits
mailing list