[ControlHeightReduction] Add assert to avoid underflow (#116339)
[llvm-project.git] / polly / test / CodeGen / Intrinsics / llvm-expect.ll
blob47fd4f07e4678ec427d970adf92e07b1dfc9188f
1 ; RUN: opt %loadNPMPolly -S -passes=polly-codegen < %s | FileCheck %s
3 ; Check that we generate code without crashing.
5 ; CHECK: polly.start
7 target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
9 ; Function Attrs: nounwind uwtable
10 define void @quux() unnamed_addr #0 {
11 bb:
12   br label %bb1
14 bb1:                                              ; preds = %bb
15   %tmp = icmp eq i64 0, 0
16   br i1 %tmp, label %bb2, label %bb7
18 bb2:                                              ; preds = %bb1
19   %tmp3 = icmp ult i64 4, 12
20   %tmp4 = zext i1 %tmp3 to i64
21   %tmp5 = tail call i64 @llvm.expect.i64(i64 %tmp4, i64 0)
22   %tmp6 = trunc i64 %tmp5 to i32
23   br label %bb7
25 bb7:                                              ; preds = %bb2, %bb1
26   %tmp8 = phi i32 [ undef, %bb2 ], [ 0, %bb1 ]
27   ret void
30 ; Function Attrs: nounwind readnone
31 declare i64 @llvm.expect.i64(i64, i64) #1
33 attributes #0 = { nounwind uwtable }
34 attributes #1 = { nounwind readnone }