llvm/llvm-project
Vedi su GitHub[X86] Add support for X86ISD float2int constant folding
Open
#37.146 aperta il 14 giu 2018
backend:X86bugzillagood first issue
Metriche repository
- Star
- (26.378 star)
- Metriche merge PR
- (Merge medio 1g 2h) (1000 PR mergiate in 30 g)
Descrizione
| Bugzilla Link | 37798 |
| Version | trunk |
| OS | Windows NT |
| Depends On | llvm/llvm-project#37099 |
| CC | @adibiagio,@topperc,@filcab,@gregbedwell,@LebedevRI,@rotateright |
Extended Description
Split off from [Bug #37751].
Now that we've standardised to using X86ISD opcodes for float2int conversions:
// Vector float/double to signed/unsigned integer.
CVTP2SI, CVTP2UI, CVTP2SI_RND, CVTP2UI_RND,
// Scalar float/double to signed/unsigned integer.
CVTS2SI_RND, CVTS2UI_RND,
// Vector float/double to signed/unsigned integer with truncation.
CVTTP2SI, CVTTP2UI, CVTTP2SI_RND, CVTTP2UI_RND,
// Scalar float/double to signed/unsigned integer with truncation.
CVTTS2SI_RND, CVTTS2UI_RND,
We should investigate adding safe constant folding support to these. We could at least support exact conversions (these should be rounding mode independent for non-truncation instructions?).
For truncation instructions we can probably accept inexact conversions as well, as long as no underflow/overflow occurs - this would need to be tested to confirm.