llvm/llvm-project
Auf GitHub ansehen[X86] Add support for X86ISD float2int constant folding
Open
#37.146 geöffnet am 14. Juni 2018
backend:X86bugzillagood first issue
Repository-Metriken
- Stars
- (26.378 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 1T 2h) (1.000 gemergte PRs in 30 T)
Beschreibung
| 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.