tree 0a28e7381a777b3d537de3e16f3df4e353dea743
parent 863ead29e92de800fe50e56958b6eba6ede023e9
author Craig Topper <craig.topper@sifive.com> 1745268589 -0700
committer GitHub <noreply@github.com> 1745268589 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoBq9tCRC1aQ7uu5UhlAAAM7oQAKe2TLGLWUQ949y3qaZ934DF
 sDs+6SchEu1Tj+lNQTCUYPKthnYvH6NwBUrOwI7ZGcRIAdFTabvoyl0v7kCkhF1c
 IQS24GQHoUwmVceObIamddQkcX3wQXQE2ryfxI5QOQfHXcbmm9Jj7ZOrTIwcemRC
 5RCt/6lCysli5++OYhKGGY3AWid7zoMjalF7gpx6iLFhpaY+bMD0/uN3Tniak1EJ
 A6hm+w/g8FnoTS2EzQ9qLyur5N93t4TPVxOHiYmVMNUPiYkbWx7Tyqi9BziSTGZb
 Wh+jkEE7FeoS3JcjnW0Ck/1YVKmwcBO4Ahrq7q6dPxjxPk7C/6B0JalbifNr/jgl
 Eyj1gKKrb8B0t/d1UbOKLQScISM1UN+nd+y1y2Nydd57hxghTKjvxoIPzqa35JOu
 jG1F9Cz2LdWBe5kbUNYiu3bXpSp6dLLViLElLB40V9eLJH8ua+Qf4gFGR4r3yeaI
 hW8IUMAeZa7Zx9lvwAerodBaeuJvpHRZzOV9JCBen+iYCap/EtrUc08ARhqwY34O
 Ywpg3B4I52wlshcaNyA20urRhEO0v+do0pxsouVwWxZNKEiaTy/EJDmFuyCDzJTC
 BP0xV6B4CdhqNa0aIcyoDgZWJ2cVd6KZmGawQ5xHM8LoLfJWK7u5XRzAnQeQfMIf
 TSxV23b/EmShI8uNebTo
 =tOe/
 -----END PGP SIGNATURE-----
 

[SelectionDAG] Prefer to use ATOMIC_LOAD extension type over getExtendForAtomicOps() in computeKnownBits/ComputeNumSignBits. (#136600)

If an ATOMIC_LOAD has ZEXTLOAD/SEXTLOAD extension type we should trust
that over getExtendForAtomicOps().

SystemZ is the only target that uses setAtomicLoadExtAction and they
return ANY_EXTEND from getExtendForAtomicOps(). So I'm not sure there's
a way to get a contradiction currently.

Note, type legalization uses getExtendForAtomicOps() when promoting
ATOMIC_LOAD so we may not need to check getExtendForAtomicOps() for
ATOMIC_LOAD. I have not done much investigating of this.