This patch is mainly for custom lowering the vector operation.
Details
Diff Detail
Event Timeline
| llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | ||
|---|---|---|
| 841 | Use Res.getValue(0) and Res.getValue(1) to shorten the code.  | |
| llvm/lib/Target/X86/X86ISelLowering.cpp | ||
| 1176 | Put this with its non-STRICT line  | |
| 1351–1352 | Don't we need to promote STRICT_FP_TO_SINT/UINT here?  | |
| 1365 | Blank line here  | |
| 1435–1436 | Need to prmote the strict notes too  | |
| 1437 | Put these next to their equivalent non-STRICT lines.  | |
| 19655–19656 | Since we removed the fallthrough out of the if, just move this down to where its used.  | |
| 19660 | Make this a local variable to this block so you can move the earlier declaration below this if  | |
| 19673 | If the IsStrict is taken, then this does an extract_subvector from a merge values and then deosn't return the chain. Are we missing test coverage? I think that should have triggered an assert.  | |
| 19707 | Just move this into the earlier IsStrict if. No need for back to back ifs with the same condition  | |
| 28563 | Please add a FIXME here, setting this to true unconditionally will need to be fixed when we stop losing flags.  | |
| llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp | ||
|---|---|---|
| 612 | Move this above the if and make the non-STRICT path just return Promoted?  | |
| llvm/lib/Target/X86/X86ISelLowering.cpp | ||
| 1444 | Move these two SINT_TO_FP/UINT_TO_FP lines below the STRICT lines. Better to keep the FP->INT lines stuff together.  | |
| 1451 | Please keep these in the same order as their non-STRICT versions. Maybe put the STRICT line directly below its corresponding non-STRICT lines. We should make it easy to see that STRICT and non-STRICT are the same.  | |
| 19670 | else should be at the end of the line above.  | |
| 19678–19686 | Move else to the line above  | |
| 19705 | Drop the else since we already returned in the if body.  | |
| llvm/test/CodeGen/X86/vec-strict-fptoint-512.ll | ||
| 4 | Should we have avx512dq coverage for the conversion to vXi64? Same with other vector tests.  | |
Modify as comments.
Add check for avx512dq
| llvm/test/CodeGen/X86/vec-strict-fptoint-512.ll | ||
|---|---|---|
| 4 | Ok.  | |
| llvm/lib/Target/X86/X86ISelLowering.cpp | ||
|---|---|---|
| 1156 | Forget to update the testcase. I'll update later.  | |
| llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll | ||
|---|---|---|
| 398 | Just noticed: is this an unsafe behavior for strict FP, because the upper elements may cause exceptions?  | |
| llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll | ||
|---|---|---|
| 398 | Maybe we can set these strict-fptoint legal only when target supports avx512vl and avx512dq?  | |
| llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll | ||
|---|---|---|
| 398 | Can we use 0.0 to pad instead of undef?  | |
| llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll | ||
|---|---|---|
| 398 | I think it's reasonable. I'll work on it.  | |
Move this above the if and make the non-STRICT path just return Promoted?