diff options
| author | Craig Topper <craig.topper@intel.com> | 2019-01-26 06:27:01 +0000 | 
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2019-01-26 06:27:01 +0000 | 
| commit | 3b5e01b386944379d21d3351c4b288f6ae1b88d5 (patch) | |
| tree | bcdf12b64c63fb3ff2f2c7e2ebde34bf5f0d880a /llvm/lib/IR | |
| parent | 58e6b37e6295e9c41022f3713c196d59b2605d0d (diff) | |
| download | bcm5719-llvm-3b5e01b386944379d21d3351c4b288f6ae1b88d5.tar.gz bcm5719-llvm-3b5e01b386944379d21d3351c4b288f6ae1b88d5.zip  | |
[X86] Remove and autoupgrade vpconflict intrinsics that take a mask and passthru argument.
We have unmasked versions as of r352172
llvm-svn: 352270
Diffstat (limited to 'llvm/lib/IR')
| -rw-r--r-- | llvm/lib/IR/AutoUpgrade.cpp | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp index d8949661e96..fe1a4ffd0fa 100644 --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -299,6 +299,7 @@ static bool ShouldUpgradeX86Intrinsic(Function *F, StringRef Name) {        Name.startswith("avx512.mask.fpclass.p") || // Added in 7.0        Name.startswith("avx512.mask.vpshufbitqmb.") || // Added in 8.0        Name.startswith("avx512.mask.pmultishift.qb.") || // Added in 8.0 +      Name.startswith("avx512.mask.conflict.") || // Added in 9.0        Name == "avx512.mask.pmov.qd.256" || // Added in 9.0        Name == "avx512.mask.pmov.qd.512" || // Added in 9.0        Name == "avx512.mask.pmov.wb.256" || // Added in 9.0 @@ -1503,6 +1504,21 @@ static bool upgradeAVX512MaskToSelect(StringRef Name, IRBuilder<> &Builder,        IID = Intrinsic::x86_avx512_pmultishift_qb_512;      else        llvm_unreachable("Unexpected intrinsic"); +  } else if (Name.startswith("conflict.")) { +    if (Name[9] == 'd' && VecWidth == 128) +      IID = Intrinsic::x86_avx512_conflict_d_128; +    else if (Name[9] == 'd' && VecWidth == 256) +      IID = Intrinsic::x86_avx512_conflict_d_256; +    else if (Name[9] == 'd' && VecWidth == 512) +      IID = Intrinsic::x86_avx512_conflict_d_512; +    else if (Name[9] == 'q' && VecWidth == 128) +      IID = Intrinsic::x86_avx512_conflict_q_128; +    else if (Name[9] == 'q' && VecWidth == 256) +      IID = Intrinsic::x86_avx512_conflict_q_256; +    else if (Name[9] == 'q' && VecWidth == 512) +      IID = Intrinsic::x86_avx512_conflict_q_512; +    else +      llvm_unreachable("Unexpected intrinsic");    } else      return false;  | 

