There is intrinsic @llvm.x86.ldtilecfg which is lowered to LDTILECFG.
This intrinsic is open for user to configure tile registers by
themselves. There is a chance that @llvm.x86.ldtilecfg would be mixed
with the new AMX intrinsics which depend on compiler to configure tile
registers. Separate pusedo instruction PLDTILECFGV would avoid
unexpected behavious when @llvm.x86.ldtilecfg is mixed with new AMX
intrinsics. Though user should not mix the two programming model,
compiler should avoid crash or UB when they are mixed.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
7363 | I think the old one should also keep in isSchedulingBoundary |
llvm/lib/Target/X86/X86InstrInfo.cpp | ||
---|---|---|
7363 | This is to prevent shape def instruction be scheduled after PLDTILECFGV. The old one (LDTILECFG) is only generated from user's intrinsic, there is no shape dependency issue. I prefer to adding LDTILECFG as schedule boudary when it is really necessary. |
llvm/test/CodeGen/X86/AMX/amx-tile-intrinsics.ll | ||
---|---|---|
3 | This the new test case that expose the issue. |
I think the old one should also keep in isSchedulingBoundary