This change enable the divergence driven selection for the SEXT DAG opcode.
Details
Diff Detail
Event Timeline
Test name is misleading, this should just go in the realgar sext test. Also I would expect this to already be well covered
This is not covered properly. Most of the tests except those I have already updated assume that we select everything to scalars and rely on the latest SIFixSGPRCopies moveToVALU.
Also, their names are misleading as well:
sext-eliminate.ll - eliminate what? sext-in-reg - it contains a couple of tests that are not scalar but they're testing some special conditions.
My test checks specifically the functionality added by the change - proper selection of i16 to i32 uniform/divergent and i16 to i64 uniform/divergent.
As for the name: does sext-divergence-driven-selection.ll looks better?
Also, I would prefer to have the tests checking divergence driven ISel separately until we remove moveToVALU path completely. Otherwise I always should expect someone accidentally removing selection predicates that generates no errors but silently go through the moveToVALU.
This is an optimization test
sext-in-reg - it contains a couple of tests that are not scalar but they're testing some special conditions.
sext_inreg is a different opcode. You're looking for sign_extend.ll
My test checks specifically the functionality added by the change - proper selection of i16 to i32 uniform/divergent and i16 to i64 uniform/divergent.
As for the name: does sext-divergence-driven-selection.ll looks better?
Also, I would prefer to have the tests checking divergence driven ISel separately until we remove moveToVALU path completely. Otherwise I always should expect someone accidentally removing selection predicates that generates no errors but silently go through the moveToVALU.