craig.topper added a comment.
I only took a quick pass through this so far. What happens if a bitcast
between x86amx and v256i32(or any other 1024-bit vector type) exists in the IR
but isn't next to a load/store?
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:5334
// to x86 amx tile on amx intrinsics.
- if (MemVT == MVT::v256i32)
- return false;
+ // if (MemVT == MVT::v256i32)
+ // return false;
----------------
Should this just be deleted?
================
Comment at: llvm/lib/Target/X86/X86LowerAMXType.cpp:63
+ LoadInst *LD = dyn_cast<LoadInst>(Src);
+ assert(LD && "Expected bitcast to x86amx from load");
+ assert(LD->hasOneUser() &&
----------------
Don't use an assert to check the result of a dyn_cast. If it shouldn't fail
just use cast<LoadInst> which will assert internally.
================
Comment at: llvm/lib/Target/X86/X86LowerAMXType.cpp:71
+ auto *AMXIntrinsic =
+ dyn_cast<IntrinsicInst>(Inst.use_begin()->getUser());
+ auto *Row = AMXIntrinsic->getOperand(0);
----------------
Unchecked dyn_cast
================
Comment at: llvm/lib/Target/X86/X86LowerAMXType.cpp:94
+ for (auto UI = Inst.use_begin(), UE = Inst.use_end(); UI != UE;) {
+ StoreInst *ST = dyn_cast<StoreInst>((UI++)->getUser());
+ assert(ST && "Expected bitcast to x86amx for store");
----------------
Use cast.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91927/new/
https://reviews.llvm.org/D91927
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits