This is an archive of the discontinued LLVM Phabricator instance.

AArch64FastISel: Abort intrinsic selection if the left operand didn't select
ClosedPublic

Authored by MatzeB on Sep 20 2018, 6:30 PM.

Details

Summary

Unfortunately I cannot produce a testcase for this as I would need an llvm constant expression that would fail to select via fast-isel. So far all my attempts at forcing this situation failed.

rdar://44642447

Diff Detail

Repository
rL LLVM

Event Timeline

MatzeB created this revision.Sep 20 2018, 6:30 PM
t.p.northover accepted this revision.Sep 21 2018, 6:12 AM

I've had a go at producing an example too with no luck. The Constant involved on the breaking config is ridiculously complex (even after reduction): i32 or (i32 shl (i32 or (i32 shl (i32 or (i32 shl (i32 and (i32 ptrtoint ([19 x i8]* @0 to i32), i32 63), i32 8), i32 and (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 63)), i32 8), i32 and (i32 lshr (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 6), i32 63)), i32 8), i32 lshr (i32 lshr (i32 lshr (i32 ptrtoint ([19 x i8]* @0 to i32), i32 6), i32 6), i32 6))

And since the change is obviously right, I think you should go ahead.

This revision is now accepted and ready to land.Sep 21 2018, 6:12 AM
This revision was automatically updated to reflect the committed changes.