llvm/llvm-project
Voir sur GitHub[X86] Add support for X86ISD float2int constant folding
Open
#37 146 ouverte le 14 juin 2018
backend:X86bugzillagood first issue
Métriques du dépôt
- Stars
- (26 378 stars)
- Métriques de merge PR
- (Merge moyen 1j 2h) (1 000 PRs mergées en 30 j)
Description
| 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.