Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
I can confirm that this fixes both my original full test case, and the minimized variant. Since this change resembles D78668, I think it is relatively safe to apply now, and merge to the release/14.x branch?
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp | ||
---|---|---|
505 | no need for else. |
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp | ||
---|---|---|
505 | Here FALLTHROUGH sets Opcode = ISD::FMA for fmuladd. Code below checks whether Opcode is legal or custom, otherwise returns true. |
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp | ||
---|---|---|
505 | Oh, yes, right. Then should case Intrinsic::fma have the same issue handled in case Intrinsic::fmuladd for double double? Or on the other hand, do we need the specific handling in case Intrinsic::fmuladd, will Opcode leagl or custom cover the check for type double double? | |
llvm/test/CodeGen/PowerPC/pr55463.ll | ||
11 | Can add a nounwind attribute for the function to simply the case a little bit. |
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp | ||
---|---|---|
505 | We don't need it. The legal check already handles the special cases (SPE, ppcf128, etc.). All we need is to put fmuladd case here, otherwise default statement just continue and ignore it. |
no need for else.
And why we need LLVM_FALLTHROUGH, I don't see any handling for Intrinsic::fmuladd in the switch block below, will break work?