Enable STRICT_SINT_TO_FP/STRICT_UINT_TO_FP on X86 backend
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 42938 Build 43545: arc lint + arc unit
Event Timeline
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp | ||
---|---|---|
568 | Is a for loop needed here? Isn’t there only one non chain operand? | |
571 | If the loop is needed I’d use a continue instead of incrementing j. Or handle it outside the loop and start the loop at 1 for strict. | |
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | ||
7390 ↗ | (On Diff #235264) | Do not change this. Normal FP_ROUND has a special case for equal types to skip creating the node. We can’t do that for strict because we can’t manage the chain here. The caller needs to avoid calling getNode when the types are equal. |
llvm/lib/Target/X86/X86ISelLowering.cpp | ||
18896 | The chain result from this isn’t used. You probably need a token factor somewhere | |
18897 | Use getValue | |
18905 | Use merge values don’t do your own replacement | |
19008 | Can the low bit cast be moved up and shared by both paths? | |
19011 | getValue | |
19012 | Merge values | |
43804 | The chain result isn’t being returned or connected | |
llvm/test/CodeGen/X86/fp-intrinsics.ll | ||
2204 | What change caused these test changes? It looks like most of this patch is vector related. What did I miss? |
Is a for loop needed here? Isn’t there only one non chain operand?