diff options
| author | Max Kazantsev <max.kazantsev@azul.com> | 2018-07-03 06:23:57 +0000 |
|---|---|---|
| committer | Max Kazantsev <max.kazantsev@azul.com> | 2018-07-03 06:23:57 +0000 |
| commit | 3097b76e8c2c714af6c84e0183280133c873370e (patch) | |
| tree | 0d30373cb41025629e9b7852479b026a3ca14b97 /llvm/test/Transforms/LoopVectorize/X86 | |
| parent | e785169fcedb9a7ec001df295d5c019b1de51994 (diff) | |
| download | bcm5719-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.ll | 3 |
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]] ] |

