diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-02-10 17:58:58 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-02-10 17:58:58 +0000 |
| commit | 28d3a73c810714fb6da680c5ee0d7e51c9e22d7a (patch) | |
| tree | cec1d9539170d0bc447fb6f47536fc6b4f6ce44a /llvm/lib/CodeGen/MachineRegionInfo.cpp | |
| parent | 0fbdaa6d816723339e32af0ffa2c10b5abb363a0 (diff) | |
| download | bcm5719-llvm-28d3a73c810714fb6da680c5ee0d7e51c9e22d7a.tar.gz bcm5719-llvm-28d3a73c810714fb6da680c5ee0d7e51c9e22d7a.zip | |
[X86] Extend inputs with elements smaller than i32 to sint_to_fp/uint_to_fp before type legalization.
This prevents extends of masks being introduced during lowering where it become difficult to combine them out.
There are a few oddities in here.
We sometimes concatenate two k-registers produced by two compares, sign_extend the combined pair, then extract two halves. This worked better previously because the sign_extend wasn't created until after the fp_to_sint was split which led to a split sign_extend being created.
We probably also need to custom type legalize (v2i32 (sext v2i1)) via widening.
llvm-svn: 324820
Diffstat (limited to 'llvm/lib/CodeGen/MachineRegionInfo.cpp')
0 files changed, 0 insertions, 0 deletions

