[InstCombine] Signed saturation tests. NFC
[llvm-complete.git] / test / Transforms / GVNSink / dither.ll
blob9717021aca82473426604be40f96ac2a848ceb83
1 ; RUN: opt < %s -S -gvn-sink | FileCheck %s
3 ; Because %tmp17 has flipped operands to its equivalents %tmp14 and %tmp7, we
4 ; can't sink the zext as we'd need a shuffling PHI in between.
6 ; Just sinking the zext isn't profitable, so ensure nothing is sunk.
8 ; CHECK-LABEL: @hoge
9 ; CHECK-NOT: bb18.gvnsink.split
10 define void @hoge() {
11 bb:
12   br i1 undef, label %bb4, label %bb11
14 bb4:                                              ; preds = %bb3
15   br i1 undef, label %bb6, label %bb8
17 bb6:                                              ; preds = %bb5
18   %tmp = zext i16 undef to i64
19   %tmp7 = add i64 %tmp, undef
20   br label %bb18
22 bb8:                                              ; preds = %bb5
23   %tmp9 = zext i16 undef to i64
24   br label %bb18
26 bb11:                                             ; preds = %bb10
27   br i1 undef, label %bb12, label %bb15
29 bb12:                                             ; preds = %bb11
30   %tmp13 = zext i16 undef to i64
31   %tmp14 = add i64 %tmp13, undef
32   br label %bb18
34 bb15:                                             ; preds = %bb11
35   %tmp16 = zext i16 undef to i64
36   %tmp17 = add i64 undef, %tmp16
37   br label %bb18
39 bb18:                                             ; preds = %bb15, %bb12, %bb8, %bb6
40   %tmp19 = phi i64 [ %tmp7, %bb6 ], [ undef, %bb8 ], [ %tmp14, %bb12 ], [ %tmp17, %bb15 ]
41   unreachable