Home | History | Annotate | Download | only in GVN
      1 ; RUN: opt -gvn <%s -S -o - | FileCheck %s
      2 
      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
     12 
     13 cond.true:
     14   ret void
     15 
     16 cond.false:
     17   ret void
     18 }
     19 
     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
     28 
     29 cond.true:
     30   ret <7 x i1> %vec
     31 
     32 cond.false:
     33   ret <7 x i1> <i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>
     34 }
     35