[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / GVN / pr28879.ll
blobec09080d980132783ed56b06b74add6cdcb65125
1 ; RUN: opt -gvn <%s -S -o - | FileCheck %s
3 define void @f() {
4 entry:
5   %a = alloca <7 x i1>, align 2
6   store <7 x i1> undef, <7 x i1>* %a, align 2
7 ; CHECK: store <7 x i1> undef, <7 x i1>*
8   %0 = getelementptr inbounds <7 x i1>, <7 x i1>* %a, i64 0, i64 0
9   %val = load i1, i1* %0, align 2
10 ; CHECK: load i1, i1* 
11   br i1 %val, label %cond.true, label %cond.false
13 cond.true:
14   ret void
16 cond.false:
17   ret void
20 define <7 x i1> @g(<7 x i1>* %a) {
21 entry:
22   %vec = load <7 x i1>, <7 x i1>* %a
23 ; CHECK: load <7 x i1>, <7 x i1>*
24   %0 = getelementptr inbounds <7 x i1>, <7 x i1>* %a, i64 0, i64 0
25   %val = load i1, i1* %0, align 2
26 ; CHECK: load i1, i1*
27   br i1 %val, label %cond.true, label %cond.false
29 cond.true:
30   ret <7 x i1> %vec
32 cond.false:
33   ret <7 x i1> <i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>