Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / loop-strength-reduce-crash.ll
bloba00433391f15d1cbcaa2ccf7ef5d4abc65661531
1 ; RUN: opt -loop-reduce < %s -o /dev/null
3 ; LSR doesn't actually do anything on this input; just check that it doesn't
4 ; crash while building the compatible type for the IV (by virtue of using
5 ; INT64_MAX as a constant in the loop).
7 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
8 target triple = "x86_64-apple-macosx10.12.0"
10 define void @foo() {
11 entry:
12   br label %for
14 for: 
15   %0 = phi i64 [ %add, %for ], [ undef, %entry ]
16   %next = phi i32 [ %inc, %for ], [ undef, %entry ]
17   store i32 %next, ptr undef, align 4
18   %add = add i64 %0, 9223372036854775807
19   %inc = add nsw i32 %next, 1
20   br i1 undef, label %exit, label %for
22 exit:
23   store i64 %add, ptr undef
24   ret void