mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-30 16:34:03 +00:00
DAGCombiner: Make the post-legalize vector op optimization more aggressive.
A legal BUILD_VECTOR goes in and gets constant folded into another legal BUILD_VECTOR so we don't lose any legality here. The problematic PPC optimization that made this check necessary was fixed recently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175759 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1484904807
commit
f31bd0f7d9
@ -9262,11 +9262,6 @@ SDValue DAGCombiner::XformToShuffleWithZero(SDNode *N) {
|
||||
|
||||
/// SimplifyVBinOp - Visit a binary vector operation, like ADD.
|
||||
SDValue DAGCombiner::SimplifyVBinOp(SDNode *N) {
|
||||
// After legalize, the target may be depending on adds and other
|
||||
// binary ops to provide legal ways to construct constants or other
|
||||
// things. Simplifying them may result in a loss of legality.
|
||||
if (LegalOperations) return SDValue();
|
||||
|
||||
assert(N->getValueType(0).isVector() &&
|
||||
"SimplifyVBinOp only works on vectors!");
|
||||
|
||||
@ -9336,11 +9331,6 @@ SDValue DAGCombiner::SimplifyVBinOp(SDNode *N) {
|
||||
|
||||
/// SimplifyVUnaryOp - Visit a binary vector operation, like FABS/FNEG.
|
||||
SDValue DAGCombiner::SimplifyVUnaryOp(SDNode *N) {
|
||||
// After legalize, the target may be depending on adds and other
|
||||
// binary ops to provide legal ways to construct constants or other
|
||||
// things. Simplifying them may result in a loss of legality.
|
||||
if (LegalOperations) return SDValue();
|
||||
|
||||
assert(N->getValueType(0).isVector() &&
|
||||
"SimplifyVUnaryOp only works on vectors!");
|
||||
|
||||
|
@ -29,7 +29,6 @@ define void@vsel_i32(<4 x i32>* %v1, <4 x i32>* %v2) {
|
||||
; Without forcing instructions, fall back to the preferred PS domain.
|
||||
; CHECK: vsel_i64
|
||||
; CHECK: andnps
|
||||
; CHECK: andps
|
||||
; CHECK: orps
|
||||
; CHECK: ret
|
||||
|
||||
@ -44,7 +43,6 @@ define void@vsel_i64(<2 x i64>* %v1, <2 x i64>* %v2) {
|
||||
; Without forcing instructions, fall back to the preferred PS domain.
|
||||
; CHECK: vsel_double
|
||||
; CHECK: andnps
|
||||
; CHECK: andps
|
||||
; CHECK: orps
|
||||
; CHECK: ret
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user