- Fix assertion failures on F16 to/from int types in FastISel by falling back to regular ISel
- Add a testcase of various conversion cases with FastISel (-O0)
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Revise the testcase with FileCheck label name workarounds
Apparently FileCheck's CHECK-LABEL can get confused in non-obvious ways
if a label happen to be a prefix of other labels in some cases.
Revise label names of the tests to avoid confusing FileCheck; add a few
more checks.
lib/Target/AArch64/AArch64FastISel.cpp | ||
---|---|---|
2857–2860 ↗ | (On Diff #100924) | It looks a bit strange to me that for selectFPToInt, the test is (SrcVT == MVT::f128 || SrcVT == MVT::f16) to fall back to DAGISel, while for selectIntToFP, the test is (DestVT == MVT::f16), not checking for a 128 bit floating point data type. If my guess is correct, this change looks reasonable; otherwise I'm not entirely sure. |
test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll | ||
1 ↗ | (On Diff #100924) | I guess that -mcpu=cortex-a57 isn't needed in this test line? |
test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll | ||
---|---|---|
1 ↗ | (On Diff #100924) | The tests look very reasonable to me. |
lib/Target/AArch64/AArch64FastISel.cpp | ||
---|---|---|
2857–2860 ↗ | (On Diff #100924) | isTypeLegal() (called in line 2855 above) returns false for f128. So both functions have matching behavior in that they don't handle f128. |
Remove -mcpu=cortex-a57 in the testcase
Per suggestion from @kristof.beyls, -mcpu is not really necessary.
test/CodeGen/AArch64/arm64-fast-isel-conversion-fallback.ll | ||
---|---|---|
1 ↗ | (On Diff #100924) | Revised the RUN line and removed the -mcpu. Thanks. |