DAGCombine: fold (or (and X, M), (and X, N)) -> (and X, (or M, N))
[oota-llvm.git] / test / CodeGen / R600 / i1-copy-implicit-def.ll
1 ; RUN: llc -march=amdgcn -mcpu=SI -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
2
3 ; SILowerI1Copies was not handling IMPLICIT_DEF
4 ; SI-LABEL: {{^}}br_implicit_def:
5 ; SI: BB#0:
6 ; SI-NEXT: s_and_saveexec_b64
7 ; SI-NEXT: s_xor_b64
8 ; SI-NEXT: BB#1:
9 define void @br_implicit_def(i32 addrspace(1)* %out, i32 %arg) #0 {
10 bb:
11   br i1 undef, label %bb1, label %bb2
12
13 bb1:
14   store volatile i32 123, i32 addrspace(1)* %out
15   ret void
16
17 bb2:
18   ret void
19 }
20
21 attributes #0 = { nounwind }