summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopVectorize/X86
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2018-07-03 06:23:57 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2018-07-03 06:23:57 +0000
commit3097b76e8c2c714af6c84e0183280133c873370e (patch)
tree0d30373cb41025629e9b7852479b026a3ca14b97 /llvm/test/Transforms/LoopVectorize/X86
parente785169fcedb9a7ec001df295d5c019b1de51994 (diff)
downloadbcm5719-llvm-3097b76e8c2c714af6c84e0183280133c873370e.tar.gz
bcm5719-llvm-3097b76e8c2c714af6c84e0183280133c873370e.zip
[InstCombine] Delay foldICmpUsingKnownBits until simple transforms are done
This patch changes order of transform in InstCombineCompares to avoid performing transforms based on ranges which produce complex bit arithmetics before more simple things (like folding with constants) are done. See PR37636 for the motivating example. Differential Revision: https://reviews.llvm.org/D48584 Reviewed By: spatel, lebedev.ri llvm-svn: 336172
Diffstat (limited to 'llvm/test/Transforms/LoopVectorize/X86')
-rw-r--r--llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll3
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll b/llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
index 8e948639ba1..b4bd5c510d0 100644
--- a/llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
+++ b/llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
@@ -2052,8 +2052,7 @@ define void @foo4(double* %A, double* %B, i32* %trigger) {
; AVX512-NEXT: [[PROL_ITER_CMP:%.*]] = icmp eq i64 [[PROL_ITER_SUB]], 0
; AVX512-NEXT: br i1 [[PROL_ITER_CMP]], label [[FOR_BODY_PROL_LOOPEXIT:%.*]], label [[FOR_BODY_PROL]], !llvm.loop !50
; AVX512: for.body.prol.loopexit:
-; AVX512-NEXT: [[DOTMASK:%.*]] = and i64 [[TMP24]], 9984
-; AVX512-NEXT: [[TMP28:%.*]] = icmp eq i64 [[DOTMASK]], 0
+; AVX512-NEXT: [[TMP28:%.*]] = icmp ult i64 [[TMP24]], 48
; AVX512-NEXT: br i1 [[TMP28]], label [[FOR_END:%.*]], label [[FOR_BODY:%.*]]
; AVX512: for.body:
; AVX512-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[INDVARS_IV_NEXT_3:%.*]], [[FOR_INC_3:%.*]] ], [ [[INDVARS_IV_NEXT_PROL]], [[FOR_BODY_PROL_LOOPEXIT]] ]
OpenPOWER on IntegriCloud