diff options
author | Craig Topper <craig.topper@intel.com> | 2019-05-22 21:00:18 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2019-05-22 21:00:18 +0000 |
commit | 93f38e1f1ae23623a03d456b5b46f19f5c500036 (patch) | |
tree | 1e49cf98e47629cc5960381bf3ba1f32c7e129f0 /clang/test/Driver/cuda-version-check.cu | |
parent | ed49f6d8e65a4d8c26621624252c5f5588d549a1 (diff) | |
download | bcm5719-llvm-93f38e1f1ae23623a03d456b5b46f19f5c500036.tar.gz bcm5719-llvm-93f38e1f1ae23623a03d456b5b46f19f5c500036.zip |
[X86] Explcitly disable VEXTRACT instruction matching for an immediate of 0. Remove a bunch of isel patterns that become unnecessary.
We effectively had a second set of isel patterns that tried to use a
regular store instruction and an extract_subreg instruction. Or a masked move
and an extract_subreg. These patterns were intended to override the
matching of VEXTRACT instructions by taking advantage of the priority
of the explicit immediate 0 for the index.
This patch instaed just disables the immediate 0 matchin the VEXTRACT
patterns. This each of the component pieces of the larger patterns will
match by themselves.
This found a bug of sorts were we didn't use 128-bit store for 512->128
extract on KNL. Its unclear what the right thing here should be.
Using the vextract avoids constraining the register allocator to use
xmm0-15. But it always results in a longer encoding if the register
allocator ends up choosing xmm0-15 anyway.
llvm-svn: 361431
Diffstat (limited to 'clang/test/Driver/cuda-version-check.cu')
0 files changed, 0 insertions, 0 deletions