forked from OSchip/llvm-project
Remove long dead code for handling vector shift by immediate builtins.
llvm-svn: 149237
This commit is contained in:
parent
028573e794
commit
2962e7b656
|
@ -2063,61 +2063,6 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
|
|||
|
||||
switch (BuiltinID) {
|
||||
default: return 0;
|
||||
case X86::BI__builtin_ia32_pslldi128:
|
||||
case X86::BI__builtin_ia32_psllqi128:
|
||||
case X86::BI__builtin_ia32_psllwi128:
|
||||
case X86::BI__builtin_ia32_psradi128:
|
||||
case X86::BI__builtin_ia32_psrawi128:
|
||||
case X86::BI__builtin_ia32_psrldi128:
|
||||
case X86::BI__builtin_ia32_psrlqi128:
|
||||
case X86::BI__builtin_ia32_psrlwi128: {
|
||||
Ops[1] = Builder.CreateZExt(Ops[1], Int64Ty, "zext");
|
||||
llvm::Type *Ty = llvm::VectorType::get(Int64Ty, 2);
|
||||
llvm::Value *Zero = llvm::ConstantInt::get(Int32Ty, 0);
|
||||
Ops[1] = Builder.CreateInsertElement(llvm::UndefValue::get(Ty),
|
||||
Ops[1], Zero, "insert");
|
||||
Ops[1] = Builder.CreateBitCast(Ops[1], Ops[0]->getType(), "bitcast");
|
||||
const char *name = 0;
|
||||
Intrinsic::ID ID = Intrinsic::not_intrinsic;
|
||||
|
||||
switch (BuiltinID) {
|
||||
default: llvm_unreachable("Unsupported shift intrinsic!");
|
||||
case X86::BI__builtin_ia32_pslldi128:
|
||||
name = "pslldi";
|
||||
ID = Intrinsic::x86_sse2_psll_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psllqi128:
|
||||
name = "psllqi";
|
||||
ID = Intrinsic::x86_sse2_psll_q;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psllwi128:
|
||||
name = "psllwi";
|
||||
ID = Intrinsic::x86_sse2_psll_w;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psradi128:
|
||||
name = "psradi";
|
||||
ID = Intrinsic::x86_sse2_psra_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrawi128:
|
||||
name = "psrawi";
|
||||
ID = Intrinsic::x86_sse2_psra_w;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrldi128:
|
||||
name = "psrldi";
|
||||
ID = Intrinsic::x86_sse2_psrl_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrlqi128:
|
||||
name = "psrlqi";
|
||||
ID = Intrinsic::x86_sse2_psrl_q;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrlwi128:
|
||||
name = "psrlwi";
|
||||
ID = Intrinsic::x86_sse2_psrl_w;
|
||||
break;
|
||||
}
|
||||
llvm::Function *F = CGM.getIntrinsic(ID);
|
||||
return Builder.CreateCall(F, Ops, name);
|
||||
}
|
||||
case X86::BI__builtin_ia32_vec_init_v8qi:
|
||||
case X86::BI__builtin_ia32_vec_init_v4hi:
|
||||
case X86::BI__builtin_ia32_vec_init_v2si:
|
||||
|
@ -2126,58 +2071,6 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
|
|||
case X86::BI__builtin_ia32_vec_ext_v2si:
|
||||
return Builder.CreateExtractElement(Ops[0],
|
||||
llvm::ConstantInt::get(Ops[1]->getType(), 0));
|
||||
case X86::BI__builtin_ia32_pslldi:
|
||||
case X86::BI__builtin_ia32_psllqi:
|
||||
case X86::BI__builtin_ia32_psllwi:
|
||||
case X86::BI__builtin_ia32_psradi:
|
||||
case X86::BI__builtin_ia32_psrawi:
|
||||
case X86::BI__builtin_ia32_psrldi:
|
||||
case X86::BI__builtin_ia32_psrlqi:
|
||||
case X86::BI__builtin_ia32_psrlwi: {
|
||||
Ops[1] = Builder.CreateZExt(Ops[1], Int64Ty, "zext");
|
||||
llvm::Type *Ty = llvm::VectorType::get(Int64Ty, 1);
|
||||
Ops[1] = Builder.CreateBitCast(Ops[1], Ty, "bitcast");
|
||||
const char *name = 0;
|
||||
Intrinsic::ID ID = Intrinsic::not_intrinsic;
|
||||
|
||||
switch (BuiltinID) {
|
||||
default: llvm_unreachable("Unsupported shift intrinsic!");
|
||||
case X86::BI__builtin_ia32_pslldi:
|
||||
name = "pslldi";
|
||||
ID = Intrinsic::x86_mmx_psll_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psllqi:
|
||||
name = "psllqi";
|
||||
ID = Intrinsic::x86_mmx_psll_q;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psllwi:
|
||||
name = "psllwi";
|
||||
ID = Intrinsic::x86_mmx_psll_w;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psradi:
|
||||
name = "psradi";
|
||||
ID = Intrinsic::x86_mmx_psra_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrawi:
|
||||
name = "psrawi";
|
||||
ID = Intrinsic::x86_mmx_psra_w;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrldi:
|
||||
name = "psrldi";
|
||||
ID = Intrinsic::x86_mmx_psrl_d;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrlqi:
|
||||
name = "psrlqi";
|
||||
ID = Intrinsic::x86_mmx_psrl_q;
|
||||
break;
|
||||
case X86::BI__builtin_ia32_psrlwi:
|
||||
name = "psrlwi";
|
||||
ID = Intrinsic::x86_mmx_psrl_w;
|
||||
break;
|
||||
}
|
||||
llvm::Function *F = CGM.getIntrinsic(ID);
|
||||
return Builder.CreateCall(F, Ops, name);
|
||||
}
|
||||
case X86::BI__builtin_ia32_ldmxcsr: {
|
||||
llvm::Type *PtrTy = Int8PtrTy;
|
||||
Value *One = llvm::ConstantInt::get(Int32Ty, 1);
|
||||
|
|
Loading…
Reference in New Issue