aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2014-03-26 00:10:22 +0000
committerQuentin Colombet <qcolombet@apple.com>2014-03-26 00:10:22 +0000
commit6f12ae0d5c9cce691afd6864b1cab726715779ee (patch)
tree0b69134e1a51cbe085791a12a2fdbc25bba69c4e /clang/lib/Frontend/CompilerInvocation.cpp
parent10be0837ac61fd5b07bfa5c04780c2608b920a81 (diff)
downloadllvm-6f12ae0d5c9cce691afd6864b1cab726715779ee.zip
llvm-6f12ae0d5c9cce691afd6864b1cab726715779ee.tar.gz
llvm-6f12ae0d5c9cce691afd6864b1cab726715779ee.tar.bz2
[X86] Add broadcast instructions to the table used by ExeDepsFix pass.
Adds the different broadcast instructions to the ReplaceableInstrsAVX2 table. That way the ExeDepsFix pass can take better decisions when AVX2 broadcasts are across domain (int <-> float). In particular, prior to this patch we were generating: vpbroadcastd LCPI1_0(%rip), %ymm2 vpand %ymm2, %ymm0, %ymm0 vmaxps %ymm1, %ymm0, %ymm0 ## <- domain change penalty Now, we generate the following nice sequence where everything is in the float domain: vbroadcastss LCPI1_0(%rip), %ymm2 vandps %ymm2, %ymm0, %ymm0 vmaxps %ymm1, %ymm0, %ymm0 <rdar://problem/16354675> llvm-svn: 204770
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions