Page MenuHomePhabricator

[InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass

Authored by dmgreen on Jun 14 2021, 12:04 PM.



The Interleave Access pass will convert shuffle(binop(load, load)) to binop(shuffle(load), shuffle(load)), in order to create more interleaving load patterns (VLD2/3/4) that might have been messed up by instcombine. As shown in D104247 we were missing copying IR flags to the new instruction though, which should just be kept the same as the original instruction.

Diff Detail

Event Timeline

dmgreen created this revision.Jun 14 2021, 12:04 PM
dmgreen requested review of this revision.Jun 14 2021, 12:04 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 14 2021, 12:04 PM
jsji accepted this revision.Jun 14 2021, 12:39 PM


This revision is now accepted and ready to land.Jun 14 2021, 12:39 PM
jsji added inline comments.Jun 14 2021, 12:44 PM

No sure, but maybe we can use CreateWithCopiedFlags directly?

dmgreen updated this revision to Diff 352056.Jun 15 2021, 1:07 AM
dmgreen added inline comments.Jun 15 2021, 1:08 AM

Oh yeah, that's what I was looking for! I had to add an version with an InsertBefore point, too.

This revision was landed with ongoing or failed builds.Jun 17 2021, 1:53 AM
This revision was automatically updated to reflect the committed changes.