mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 13:11:39 +01:00
993616b89d
Support for vectorizing loops with secondary floating-point induction variables was added in r276554. A primary integer IV is still required for vectorization to be done. If an FP IV was found, but no integer IV was found at all (primary or secondary), the attempt to vectorize still went forward, causing a compiler-crash. This change abandons that attempt when no integer IV is found. (Vectorizing FP-only cases like this, rather than bailing out, is discussed as possible future work in D52327.) See PR38800 for more information. Differential Revision: https://reviews.llvm.org/D52327 llvm-svn: 342786
21 lines
470 B
LLVM
21 lines
470 B
LLVM
; RUN: opt -passes='loop-vectorize' -S -pass-remarks-missed=loop-vectorize < %s 2>&1 | FileCheck %s
|
|
;
|
|
; FP primary induction is not supported in LV. Make sure Legal bails out.
|
|
;
|
|
; CHECK: loop not vectorized
|
|
|
|
define void @PR37515() {
|
|
entry:
|
|
br label %loop
|
|
|
|
loop:
|
|
%p = phi float [ 19.0, %entry ], [ %a, %loop ]
|
|
%a = fadd fast float %p, -1.0
|
|
%m = fmul fast float %a, %a
|
|
%c = fcmp fast ugt float %a, 2.0
|
|
br i1 %c, label %loop, label %exit
|
|
|
|
exit:
|
|
unreachable
|
|
}
|