[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
https://github.com/changpeng closed https://github.com/llvm/llvm-project/pull/86707 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
https://github.com/srpande approved this pull request. It's a good change. https://github.com/llvm/llvm-project/pull/86707 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
https://github.com/changpeng updated https://github.com/llvm/llvm-project/pull/86707 >From 485dff66813104ad73d8eada7cd7d43edf9d093d Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 11:06:48 -0700 Subject: [PATCH 1/3] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly. --- clang/lib/CodeGen/CGBuiltin.cpp | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 46a815155e7b87..d05ea9f626ba86 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18544,31 +18544,23 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: { Intrinsic::ID IID; -llvm::Type *ArgTy; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: - ArgTy = llvm::Type::getInt32Ty(getLLVMContext()); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt32Ty(getLLVMContext()), 2); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 4); IID = Intrinsic::amdgcn_global_load_tr_b128; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 8); IID = Intrinsic::amdgcn_global_load_tr_b128; break; } - +llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {ArgTy}); +llvm::Function *F = CGM.getIntrinsic(IID, {}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { >From 2375ed4269c4feedf5767383838bb6c5d4cfd80c Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 11:17:40 -0700 Subject: [PATCH 2/3] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC --- clang/lib/CodeGen/CGBuiltin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index d05ea9f626ba86..d25d79d085a8eb 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18560,7 +18560,7 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, } llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {}); +llvm::Function *F = CGM.getIntrinsic(IID, {LoadTy}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { >From 6aeb3debd25b5fe2ca3191d51f1d0589a9ce24da Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 14:12:50 -0700 Subject: [PATCH 3/3] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC --- clang/lib/CodeGen/CGBuiltin.cpp | 4 1 file changed, 4 deletions(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index d25d79d085a8eb..3cfdb261a0eac0 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18546,14 +18546,10 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, Intrinsic::ID IID; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: - IID = Intrinsic::amdgcn_global_load_tr_b64; - break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32: IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16: - IID = Intrinsic::amdgcn_global_load_tr_b128; - break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: IID = Intrinsic::amdgcn_global_load_tr_b128; break; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
llvmbot wrote: @llvm/pr-subscribers-clang Author: Changpeng Fang (changpeng) Changes We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly. --- Full diff: https://github.com/llvm/llvm-project/pull/86707.diff 1 Files Affected: - (modified) clang/lib/CodeGen/CGBuiltin.cpp (+2-10) ``diff diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 46a815155e7b87..d25d79d085a8eb 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18544,31 +18544,23 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: { Intrinsic::ID IID; -llvm::Type *ArgTy; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: - ArgTy = llvm::Type::getInt32Ty(getLLVMContext()); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt32Ty(getLLVMContext()), 2); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 4); IID = Intrinsic::amdgcn_global_load_tr_b128; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 8); IID = Intrinsic::amdgcn_global_load_tr_b128; break; } - +llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {ArgTy}); +llvm::Function *F = CGM.getIntrinsic(IID, {LoadTy}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { `` https://github.com/llvm/llvm-project/pull/86707 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
https://github.com/changpeng updated https://github.com/llvm/llvm-project/pull/86707 >From 485dff66813104ad73d8eada7cd7d43edf9d093d Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 11:06:48 -0700 Subject: [PATCH 1/2] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly. --- clang/lib/CodeGen/CGBuiltin.cpp | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 46a815155e7b87..d05ea9f626ba86 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18544,31 +18544,23 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: { Intrinsic::ID IID; -llvm::Type *ArgTy; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: - ArgTy = llvm::Type::getInt32Ty(getLLVMContext()); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt32Ty(getLLVMContext()), 2); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 4); IID = Intrinsic::amdgcn_global_load_tr_b128; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 8); IID = Intrinsic::amdgcn_global_load_tr_b128; break; } - +llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {ArgTy}); +llvm::Function *F = CGM.getIntrinsic(IID, {}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { >From 2375ed4269c4feedf5767383838bb6c5d4cfd80c Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 11:17:40 -0700 Subject: [PATCH 2/2] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC --- clang/lib/CodeGen/CGBuiltin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index d05ea9f626ba86..d25d79d085a8eb 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18560,7 +18560,7 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, } llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {}); +llvm::Function *F = CGM.getIntrinsic(IID, {LoadTy}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)
https://github.com/changpeng created https://github.com/llvm/llvm-project/pull/86707 We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly. >From 485dff66813104ad73d8eada7cd7d43edf9d093d Mon Sep 17 00:00:00 2001 From: Changpeng Fang Date: Tue, 26 Mar 2024 11:06:48 -0700 Subject: [PATCH] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC We should not manually get the types of the loading data. Instead, we can get the types from the intrinsics directly. --- clang/lib/CodeGen/CGBuiltin.cpp | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 46a815155e7b87..d05ea9f626ba86 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18544,31 +18544,23 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: { Intrinsic::ID IID; -llvm::Type *ArgTy; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: - ArgTy = llvm::Type::getInt32Ty(getLLVMContext()); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_v2i32: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt32Ty(getLLVMContext()), 2); IID = Intrinsic::amdgcn_global_load_tr_b64; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 4); IID = Intrinsic::amdgcn_global_load_tr_b128; break; case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: - ArgTy = llvm::FixedVectorType::get( - llvm::Type::getInt16Ty(getLLVMContext()), 8); IID = Intrinsic::amdgcn_global_load_tr_b128; break; } - +llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); -llvm::Function *F = CGM.getIntrinsic(IID, {ArgTy}); +llvm::Function *F = CGM.getIntrinsic(IID, {}); return Builder.CreateCall(F, {Addr}); } case AMDGPU::BI__builtin_amdgcn_get_fpenv: { ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits