diff options
author | Luo, Yuanke <yuanke.luo@intel.com> | 2020-11-20 15:19:34 +0800 |
---|---|---|
committer | Luo, Yuanke <yuanke.luo@intel.com> | 2020-12-30 13:52:13 +0800 |
commit | 981a0bd85811fe49379fdbef35528e2c2f3511a3 (patch) | |
tree | 94c040a6a4126c37369dd8c774c86673bda34678 /llvm/lib/IR/ConstantFold.cpp | |
parent | bf286b00e9e860a85adaab1214271e374267a033 (diff) | |
download | llvm-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.cpp | 2 |
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); |