[clang] AMDGPU: Simplify EmitAMDGPUBuiltinExpr for load transposes, NFC (PR #86707)

2024-03-26 Thread Changpeng Fang via cfe-commits

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)

2024-03-26 Thread Sirish Pande via cfe-commits

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)

2024-03-26 Thread Changpeng Fang via cfe-commits

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)

2024-03-26 Thread via cfe-commits

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)

2024-03-26 Thread Changpeng Fang via cfe-commits

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)

2024-03-26 Thread Changpeng Fang via cfe-commits

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