[x86] autoupgrade and remove AVX2 integer min/max intrinsics
This will (hopefully very temporarily) break clang.
The clang side of this should be the next commit.
llvm-svn: 272932
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index f13009a..d3ee5e8 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -186,6 +186,8 @@
Name == "x86.sse2.pminu.b" ||
Name == "x86.sse41.pminuw" ||
Name == "x86.sse41.pminud" ||
+ Name.startswith("x86.avx2.pmax") ||
+ Name.startswith("x86.avx2.pmin") ||
Name.startswith("x86.avx2.vbroadcast") ||
Name.startswith("x86.avx2.pbroadcast") ||
Name.startswith("x86.avx.vpermil.") ||
@@ -566,19 +568,23 @@
Rep = Builder.CreateSExt(Rep, CI->getType(), "");
} else if (Name == "llvm.x86.sse41.pmaxsb" ||
Name == "llvm.x86.sse2.pmaxs.w" ||
- Name == "llvm.x86.sse41.pmaxsd") {
+ Name == "llvm.x86.sse41.pmaxsd" ||
+ Name.startswith("llvm.x86.avx2.pmaxs")) {
Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_SGT);
} else if (Name == "llvm.x86.sse2.pmaxu.b" ||
Name == "llvm.x86.sse41.pmaxuw" ||
- Name == "llvm.x86.sse41.pmaxud") {
+ Name == "llvm.x86.sse41.pmaxud" ||
+ Name.startswith("llvm.x86.avx2.pmaxu")) {
Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_UGT);
} else if (Name == "llvm.x86.sse41.pminsb" ||
Name == "llvm.x86.sse2.pmins.w" ||
- Name == "llvm.x86.sse41.pminsd") {
+ Name == "llvm.x86.sse41.pminsd" ||
+ Name.startswith("llvm.x86.avx2.pmins")) {
Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_SLT);
} else if (Name == "llvm.x86.sse2.pminu.b" ||
Name == "llvm.x86.sse41.pminuw" ||
- Name == "llvm.x86.sse41.pminud") {
+ Name == "llvm.x86.sse41.pminud" ||
+ Name.startswith("llvm.x86.avx2.pminu")) {
Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_ULT);
} else if (Name == "llvm.x86.sse2.cvtdq2pd" ||
Name == "llvm.x86.sse2.cvtps2pd" ||