mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 10:04:33 +00:00
Revert r301880
This change caused buildbot failures, apparently because we're not passing around types that InstSimplify is used to seeing. I'm not overly familiar with InstSimplify, so I'm reverting this until I can figure out what exactly is wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@301885 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
29f8995a43
commit
4d11ee489b
@ -62,8 +62,6 @@ static Value *SimplifyOrInst(Value *, Value *, const SimplifyQuery &, unsigned);
|
||||
static Value *SimplifyXorInst(Value *, Value *, const SimplifyQuery &, unsigned);
|
||||
static Value *SimplifyCastInst(unsigned, Value *, Type *,
|
||||
const SimplifyQuery &, unsigned);
|
||||
static Value *SimplifyGEPInst(Type *, ArrayRef<Value *>, const SimplifyQuery &,
|
||||
unsigned);
|
||||
|
||||
/// For a boolean type or a vector of boolean type, return false or a vector
|
||||
/// with every element false.
|
||||
@ -3493,17 +3491,6 @@ static const Value *SimplifyWithOpReplaced(Value *V, Value *Op, Value *RepOp,
|
||||
}
|
||||
}
|
||||
|
||||
// Same for GEPs.
|
||||
if (auto *GEP = dyn_cast<GetElementPtrInst>(I)) {
|
||||
if (MaxRecurse) {
|
||||
SmallVector<Value *, 8> NewOps(GEP->getNumOperands());
|
||||
transform(GEP->operands(), NewOps.begin(),
|
||||
[&](Value *V) { return V == Op ? RepOp : V; });
|
||||
return SimplifyGEPInst(GEP->getSourceElementType(), NewOps, Q,
|
||||
MaxRecurse - 1);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: We could hand off more cases to instsimplify here.
|
||||
|
||||
// If all operands are constant after substituting Op for RepOp then we can
|
||||
|
@ -431,22 +431,3 @@ define i8 @do_not_assume_sel_cond(i1 %cond, i8 %x, i8 %y) {
|
||||
ret i8 %sel
|
||||
}
|
||||
|
||||
define i32* @select_icmp_eq_0_gep_operand(i32* %base, i64 %n) {
|
||||
; CHECK-LABEL: @select_icmp_eq_0_gep_operand(
|
||||
; CHECK-NEXT: [[GEP:%.*]] = getelementptr
|
||||
; CHECK-NEXT: ret i32* [[GEP]]
|
||||
%cond = icmp eq i64 %n, 0
|
||||
%gep = getelementptr i32, i32* %base, i64 %n
|
||||
%r = select i1 %cond, i32* %base, i32* %gep
|
||||
ret i32* %r
|
||||
}
|
||||
|
||||
define i32* @select_icmp_ne_0_gep_operand(i32* %base, i64 %n) {
|
||||
; CHECK-LABEL: @select_icmp_ne_0_gep_operand(
|
||||
; CHECK-NEXT: [[GEP:%.*]] = getelementptr
|
||||
; CHECK-NEXT: ret i32* [[GEP]]
|
||||
%cond = icmp ne i64 %n, 0
|
||||
%gep = getelementptr i32, i32* %base, i64 %n
|
||||
%r = select i1 %cond, i32* %gep, i32* %base
|
||||
ret i32* %r
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user