aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/ConstantFold.cpp
diff options
context:
space:
mode:
authorLuo, Yuanke <yuanke.luo@intel.com>2020-11-20 15:19:34 +0800
committerLuo, Yuanke <yuanke.luo@intel.com>2020-12-30 13:52:13 +0800
commit981a0bd85811fe49379fdbef35528e2c2f3511a3 (patch)
tree94c040a6a4126c37369dd8c774c86673bda34678 /llvm/lib/IR/ConstantFold.cpp
parentbf286b00e9e860a85adaab1214271e374267a033 (diff)
downloadllvm-981a0bd85811fe49379fdbef35528e2c2f3511a3.zip
llvm-981a0bd85811fe49379fdbef35528e2c2f3511a3.tar.gz
llvm-981a0bd85811fe49379fdbef35528e2c2f3511a3.tar.bz2
[X86] Add x86_amx type for intel AMX.
The x86_amx is used for AMX intrisics. <256 x i32> is bitcast to x86_amx when it is used by AMX intrinsics, and x86_amx is bitcast to <256 x i32> when it is used by load/store instruction. So amx intrinsics only operate on type x86_amx. It can help to separate amx intrinsics from llvm IR instructions (+-*/). Thank Craig for the idea. This patch depend on https://reviews.llvm.org/D87981. Differential Revision: https://reviews.llvm.org/D91927
Diffstat (limited to 'llvm/lib/IR/ConstantFold.cpp')
-rw-r--r--llvm/lib/IR/ConstantFold.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/IR/ConstantFold.cpp b/llvm/lib/IR/ConstantFold.cpp
index d9564a3..4774568 100644
--- a/llvm/lib/IR/ConstantFold.cpp
+++ b/llvm/lib/IR/ConstantFold.cpp
@@ -535,7 +535,7 @@ Constant *llvm::ConstantFoldCastInstruction(unsigned opc, Constant *V,
return UndefValue::get(DestTy);
}
- if (V->isNullValue() && !DestTy->isX86_MMXTy() &&
+ if (V->isNullValue() && !DestTy->isX86_MMXTy() && !DestTy->isX86_AMXTy() &&
opc != Instruction::AddrSpaceCast)
return Constant::getNullValue(DestTy);