This is the patch that lowers x86 intrinsics to native IR
in order to enable optimizations.
Corresponding llvm part: https://reviews.llvm.org/D44785
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
| lib/CodeGen/CGBuiltin.cpp | ||
|---|---|---|
| 7897 ↗ | (On Diff #139456) | Can we just create the constant in the extended type? |
| 7910 ↗ | (On Diff #139456) | ConstantInt::get should be able to splat on its own if you give it a vector type. Same with getAllOnesValue above |
| 8922 ↗ | (On Diff #139456) | Substraction->Subtraction |
| 8929 ↗ | (On Diff #139456) | Substraction->Subtraction |
| lib/CodeGen/CGBuiltin.cpp | ||
|---|---|---|
| 7897 ↗ | (On Diff #139456) | We can't - SignedMaxValue is created in non-extended type and llvm::ConstantInt::get makes an assertion that the input is of the same type. We can perform sext() on SignedMaxValue but the result will be the same. |
Comment Actions
LGTM with that one comment.
| lib/CodeGen/CGBuiltin.cpp | ||
|---|---|---|
| 8288 ↗ | (On Diff #140244) | You could probably just do ResultType->getScalarSizeInBits() == 8 |