https://github.com/petar-avramovic created https://github.com/llvm/llvm-project/pull/210097
isAnyScalar is explicit LLT::scalar check but we want to narrow scalar integer types as well. >From 3a3e8d5df92ce4cef895cda605e7b03a6dd7131a Mon Sep 17 00:00:00 2001 From: Petar Avramovic <[email protected]> Date: Thu, 16 Jul 2026 18:07:24 +0200 Subject: [PATCH] AMDGPU/GlobalISel: Fix extending load narrow scalar isAnyScalar is explicit LLT::scalar check but we want to narrow scalar integer types as well. --- llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 2 +- llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp index c2efcd626a9c1..8d0fed4c635d3 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp @@ -1818,7 +1818,7 @@ AMDGPULegalizerInfo::AMDGPULegalizerInfo(const GCNSubtarget &ST_, ExtLoads.narrowScalarIf( [](const LegalityQuery &Query) { LLT MemTy = Query.MMODescrs[0].MemoryTy; - return MemTy.isAnyScalar() && MemTy.getSizeInBits() > 32 && + return MemTy.isScalar() && MemTy.getSizeInBits() > 32 && Query.Types[0].getSizeInBits() > MemTy.getSizeInBits(); }, // For large MemSize, narrowscalar to MemSize (load MemSize + ext) getScalarTypeFromMemDesc(0)); diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll b/llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll index ae7bf4fd17d4d..4e3203bf972ce 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/zextload.ll @@ -1,9 +1,9 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -global-isel -global-isel-abort=2 -mtriple=amdgpu9.00-amd-amdpal < %s | FileCheck --check-prefix=GFX9 %s -; RUN: llc -global-isel -global-isel-abort=2 -mtriple=amdgpu8.03-amd-amdpal < %s | FileCheck --check-prefix=GFX8 %s -; RUN: llc -global-isel -global-isel-abort=2 -mtriple=amdgpu6.00-amd-amdpal < %s | FileCheck --check-prefix=GFX6 %s -; RUN: llc -global-isel -global-isel-abort=2 -mtriple=amdgpu10.10-amd-amdpal < %s | FileCheck --check-prefix=GFX10 %s -; RUN: llc -global-isel -global-isel-abort=2 -mtriple=amdgpu11.00-amd-amdpal < %s | FileCheck --check-prefix=GFX11 %s +; RUN: llc -global-isel -mtriple=amdgpu9.00-amd-amdpal < %s | FileCheck --check-prefix=GFX9 %s +; RUN: llc -global-isel -mtriple=amdgpu8.03-amd-amdpal < %s | FileCheck --check-prefix=GFX8 %s +; RUN: llc -global-isel -mtriple=amdgpu6.00-amd-amdpal < %s | FileCheck --check-prefix=GFX6 %s +; RUN: llc -global-isel -mtriple=amdgpu10.10-amd-amdpal < %s | FileCheck --check-prefix=GFX10 %s +; RUN: llc -global-isel -mtriple=amdgpu11.00-amd-amdpal < %s | FileCheck --check-prefix=GFX11 %s define i32 @zextload_global_i1_to_i32(ptr addrspace(1) %ptr) { ; GFX9-LABEL: zextload_global_i1_to_i32: @@ -468,8 +468,7 @@ define i128 @zextload_global_i64_to_i128(ptr addrspace(1) %ptr) { ; GFX6-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; GFX6-NEXT: s_mov_b32 s6, 0 ; GFX6-NEXT: s_mov_b32 s7, 0xf000 -; GFX6-NEXT: s_mov_b32 s4, s6 -; GFX6-NEXT: s_mov_b32 s5, s6 +; GFX6-NEXT: s_mov_b64 s[4:5], 0 ; GFX6-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64 ; GFX6-NEXT: v_mov_b32_e32 v2, 0 ; GFX6-NEXT: v_mov_b32_e32 v3, 0 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
