blob: c837c7371d8b04b417eb661385d7c156e45863fa [file] [log] [blame]
Index: include/llvm/Intrinsics.td
===================================================================
--- include/llvm/Intrinsics.td (revision 3710)
+++ include/llvm/Intrinsics.td (working copy)
@@ -439,10 +439,10 @@
// Target-specific intrinsics
//===----------------------------------------------------------------------===//
-include "llvm/IntrinsicsPowerPC.td"
+//include "llvm/IntrinsicsPowerPC.td"
include "llvm/IntrinsicsX86.td"
-include "llvm/IntrinsicsARM.td"
-include "llvm/IntrinsicsCellSPU.td"
-include "llvm/IntrinsicsAlpha.td"
-include "llvm/IntrinsicsXCore.td"
-include "llvm/IntrinsicsPTX.td"
+//include "llvm/IntrinsicsARM.td"
+//include "llvm/IntrinsicsCellSPU.td"
+//include "llvm/IntrinsicsAlpha.td"
+//include "llvm/IntrinsicsXCore.td"
+//include "llvm/IntrinsicsPTX.td"
Index: lib/Analysis/BasicAliasAnalysis.cpp
===================================================================
--- lib/Analysis/BasicAliasAnalysis.cpp (revision 3710)
+++ lib/Analysis/BasicAliasAnalysis.cpp (working copy)
@@ -785,27 +785,27 @@
return NoModRef;
break;
}
- case Intrinsic::arm_neon_vld1: {
- // LLVM's vld1 and vst1 intrinsics currently only support a single
- // vector register.
- uint64_t Size =
- TD ? TD->getTypeStoreSize(II->getType()) : UnknownSize;
- if (isNoAlias(Location(II->getArgOperand(0), Size,
- II->getMetadata(LLVMContext::MD_tbaa)),
- Loc))
- return NoModRef;
- break;
+ //case Intrinsic::arm_neon_vld1: {
+ // // LLVM's vld1 and vst1 intrinsics currently only support a single
+ // // vector register.
+ // uint64_t Size =
+ // TD ? TD->getTypeStoreSize(II->getType()) : UnknownSize;
+ // if (isNoAlias(Location(II->getArgOperand(0), Size,
+ // II->getMetadata(LLVMContext::MD_tbaa)),
+ // Loc))
+ // return NoModRef;
+ // break;
+ //}
+ //case Intrinsic::arm_neon_vst1: {
+ // uint64_t Size =
+ // TD ? TD->getTypeStoreSize(II->getArgOperand(1)->getType()) : UnknownSize;
+ // if (isNoAlias(Location(II->getArgOperand(0), Size,
+ // II->getMetadata(LLVMContext::MD_tbaa)),
+ // Loc))
+ // return NoModRef;
+ // break;
+ //}
}
- case Intrinsic::arm_neon_vst1: {
- uint64_t Size =
- TD ? TD->getTypeStoreSize(II->getArgOperand(1)->getType()) : UnknownSize;
- if (isNoAlias(Location(II->getArgOperand(0), Size,
- II->getMetadata(LLVMContext::MD_tbaa)),
- Loc))
- return NoModRef;
- break;
- }
- }
// We can bound the aliasing properties of memset_pattern16 just as we can
// for memcpy/memset. This is particularly important because the
Index: lib/Transforms/InstCombine/InstCombineCalls.cpp
===================================================================
--- lib/Transforms/InstCombine/InstCombineCalls.cpp (revision 3710)
+++ lib/Transforms/InstCombine/InstCombineCalls.cpp (working copy)
@@ -544,25 +544,25 @@
}
}
break;
- case Intrinsic::ppc_altivec_lvx:
- case Intrinsic::ppc_altivec_lvxl:
- // Turn PPC lvx -> load if the pointer is known aligned.
- if (getOrEnforceKnownAlignment(II->getArgOperand(0), 16, TD) >= 16) {
- Value *Ptr = Builder->CreateBitCast(II->getArgOperand(0),
- PointerType::getUnqual(II->getType()));
- return new LoadInst(Ptr);
- }
- break;
- case Intrinsic::ppc_altivec_stvx:
- case Intrinsic::ppc_altivec_stvxl:
- // Turn stvx -> store if the pointer is known aligned.
- if (getOrEnforceKnownAlignment(II->getArgOperand(1), 16, TD) >= 16) {
- Type *OpPtrTy =
- PointerType::getUnqual(II->getArgOperand(0)->getType());
- Value *Ptr = Builder->CreateBitCast(II->getArgOperand(1), OpPtrTy);
- return new StoreInst(II->getArgOperand(0), Ptr);
- }
- break;
+ //case Intrinsic::ppc_altivec_lvx:
+ //case Intrinsic::ppc_altivec_lvxl:
+ // // Turn PPC lvx -> load if the pointer is known aligned.
+ // if (getOrEnforceKnownAlignment(II->getArgOperand(0), 16, TD) >= 16) {
+ // Value *Ptr = Builder->CreateBitCast(II->getArgOperand(0),
+ // PointerType::getUnqual(II->getType()));
+ // return new LoadInst(Ptr);
+ // }
+ // break;
+ //case Intrinsic::ppc_altivec_stvx:
+ //case Intrinsic::ppc_altivec_stvxl:
+ // // Turn stvx -> store if the pointer is known aligned.
+ // if (getOrEnforceKnownAlignment(II->getArgOperand(1), 16, TD) >= 16) {
+ // Type *OpPtrTy =
+ // PointerType::getUnqual(II->getArgOperand(0)->getType());
+ // Value *Ptr = Builder->CreateBitCast(II->getArgOperand(1), OpPtrTy);
+ // return new StoreInst(II->getArgOperand(0), Ptr);
+ // }
+ // break;
case Intrinsic::x86_sse_storeu_ps:
case Intrinsic::x86_sse2_storeu_pd:
case Intrinsic::x86_sse2_storeu_dq:
@@ -619,79 +619,79 @@
break;
}
- case Intrinsic::ppc_altivec_vperm:
- // Turn vperm(V1,V2,mask) -> shuffle(V1,V2,mask) if mask is a constant.
- if (ConstantVector *Mask = dyn_cast<ConstantVector>(II->getArgOperand(2))) {
- assert(Mask->getNumOperands() == 16 && "Bad type for intrinsic!");
-
- // Check that all of the elements are integer constants or undefs.
- bool AllEltsOk = true;
- for (unsigned i = 0; i != 16; ++i) {
- if (!isa<ConstantInt>(Mask->getOperand(i)) &&
- !isa<UndefValue>(Mask->getOperand(i))) {
- AllEltsOk = false;
- break;
- }
- }
-
- if (AllEltsOk) {
- // Cast the input vectors to byte vectors.
- Value *Op0 = Builder->CreateBitCast(II->getArgOperand(0),
- Mask->getType());
- Value *Op1 = Builder->CreateBitCast(II->getArgOperand(1),
- Mask->getType());
- Value *Result = UndefValue::get(Op0->getType());
-
- // Only extract each element once.
- Value *ExtractedElts[32];
- memset(ExtractedElts, 0, sizeof(ExtractedElts));
-
- for (unsigned i = 0; i != 16; ++i) {
- if (isa<UndefValue>(Mask->getOperand(i)))
- continue;
- unsigned Idx=cast<ConstantInt>(Mask->getOperand(i))->getZExtValue();
- Idx &= 31; // Match the hardware behavior.
-
- if (ExtractedElts[Idx] == 0) {
- ExtractedElts[Idx] =
- Builder->CreateExtractElement(Idx < 16 ? Op0 : Op1,
- Builder->getInt32(Idx&15));
- }
-
- // Insert this value into the result vector.
- Result = Builder->CreateInsertElement(Result, ExtractedElts[Idx],
- Builder->getInt32(i));
- }
- return CastInst::Create(Instruction::BitCast, Result, CI.getType());
- }
- }
- break;
+ //case Intrinsic::ppc_altivec_vperm:
+ // // Turn vperm(V1,V2,mask) -> shuffle(V1,V2,mask) if mask is a constant.
+ // if (ConstantVector *Mask = dyn_cast<ConstantVector>(II->getArgOperand(2))) {
+ // assert(Mask->getNumOperands() == 16 && "Bad type for intrinsic!");
+ //
+ // // Check that all of the elements are integer constants or undefs.
+ // bool AllEltsOk = true;
+ // for (unsigned i = 0; i != 16; ++i) {
+ // if (!isa<ConstantInt>(Mask->getOperand(i)) &&
+ // !isa<UndefValue>(Mask->getOperand(i))) {
+ // AllEltsOk = false;
+ // break;
+ // }
+ // }
+ //
+ // if (AllEltsOk) {
+ // // Cast the input vectors to byte vectors.
+ // Value *Op0 = Builder->CreateBitCast(II->getArgOperand(0),
+ // Mask->getType());
+ // Value *Op1 = Builder->CreateBitCast(II->getArgOperand(1),
+ // Mask->getType());
+ // Value *Result = UndefValue::get(Op0->getType());
+ //
+ // // Only extract each element once.
+ // Value *ExtractedElts[32];
+ // memset(ExtractedElts, 0, sizeof(ExtractedElts));
+ //
+ // for (unsigned i = 0; i != 16; ++i) {
+ // if (isa<UndefValue>(Mask->getOperand(i)))
+ // continue;
+ // unsigned Idx=cast<ConstantInt>(Mask->getOperand(i))->getZExtValue();
+ // Idx &= 31; // Match the hardware behavior.
+ //
+ // if (ExtractedElts[Idx] == 0) {
+ // ExtractedElts[Idx] =
+ // Builder->CreateExtractElement(Idx < 16 ? Op0 : Op1,
+ // Builder->getInt32(Idx&15));
+ // }
+ //
+ // // Insert this value into the result vector.
+ // Result = Builder->CreateInsertElement(Result, ExtractedElts[Idx],
+ // Builder->getInt32(i));
+ // }
+ // return CastInst::Create(Instruction::BitCast, Result, CI.getType());
+ // }
+ // }
+ // break;
- case Intrinsic::arm_neon_vld1:
- case Intrinsic::arm_neon_vld2:
- case Intrinsic::arm_neon_vld3:
- case Intrinsic::arm_neon_vld4:
- case Intrinsic::arm_neon_vld2lane:
- case Intrinsic::arm_neon_vld3lane:
- case Intrinsic::arm_neon_vld4lane:
- case Intrinsic::arm_neon_vst1:
- case Intrinsic::arm_neon_vst2:
- case Intrinsic::arm_neon_vst3:
- case Intrinsic::arm_neon_vst4:
- case Intrinsic::arm_neon_vst2lane:
- case Intrinsic::arm_neon_vst3lane:
- case Intrinsic::arm_neon_vst4lane: {
- unsigned MemAlign = getKnownAlignment(II->getArgOperand(0), TD);
- unsigned AlignArg = II->getNumArgOperands() - 1;
- ConstantInt *IntrAlign = dyn_cast<ConstantInt>(II->getArgOperand(AlignArg));
- if (IntrAlign && IntrAlign->getZExtValue() < MemAlign) {
- II->setArgOperand(AlignArg,
- ConstantInt::get(Type::getInt32Ty(II->getContext()),
- MemAlign, false));
- return II;
- }
- break;
- }
+ //case Intrinsic::arm_neon_vld1:
+ //case Intrinsic::arm_neon_vld2:
+ //case Intrinsic::arm_neon_vld3:
+ //case Intrinsic::arm_neon_vld4:
+ //case Intrinsic::arm_neon_vld2lane:
+ //case Intrinsic::arm_neon_vld3lane:
+ //case Intrinsic::arm_neon_vld4lane:
+ //case Intrinsic::arm_neon_vst1:
+ //case Intrinsic::arm_neon_vst2:
+ //case Intrinsic::arm_neon_vst3:
+ //case Intrinsic::arm_neon_vst4:
+ //case Intrinsic::arm_neon_vst2lane:
+ //case Intrinsic::arm_neon_vst3lane:
+ //case Intrinsic::arm_neon_vst4lane: {
+ // unsigned MemAlign = getKnownAlignment(II->getArgOperand(0), TD);
+ // unsigned AlignArg = II->getNumArgOperands() - 1;
+ // ConstantInt *IntrAlign = dyn_cast<ConstantInt>(II->getArgOperand(AlignArg));
+ // if (IntrAlign && IntrAlign->getZExtValue() < MemAlign) {
+ // II->setArgOperand(AlignArg,
+ // ConstantInt::get(Type::getInt32Ty(II->getContext()),
+ // MemAlign, false));
+ // return II;
+ // }
+ // break;
+ //}
case Intrinsic::stackrestore: {
// If the save is right next to the restore, remove the restore. This can