blob: 18da465e606c593f9cd5b14b80a8a0a1f8fb8f90 [file] [log] [blame]
Artur Pilipenkoe812ca02017-01-25 14:12:12 +00001; RUN: opt < %s -instcombine -S | FileCheck %s
2
3declare void @llvm.experimental.guard(i1, ...)
4
5define void @test_guard_adjacent(i1 %A) {
6; CHECK-LABEL: @test_guard_adjacent(
7; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 %A) [ "deopt"() ]
8; CHECK-NEXT: ret void
9 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
10 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
11 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
12 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
13 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
14 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
15 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
16 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
17 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
18 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
19 ret void
20}
21
22define void @test_guard_adjacent_neg(i1 %A, i1 %B) {
23; CHECK-LABEL: @test_guard_adjacent_neg(
24; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 %A) [ "deopt"() ]
25; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 %B) [ "deopt"() ]
26; CHECK-NEXT: ret void
27 call void(i1, ...) @llvm.experimental.guard( i1 %A )[ "deopt"() ]
28 call void(i1, ...) @llvm.experimental.guard( i1 %B )[ "deopt"() ]
29 ret void
30}