xref: /aosp_15_r20/external/llvm/test/Bitcode/case-ranges-3.3.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN:  llvm-dis < %s.bc| FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN:  verify-uselistorder < %s.bc
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; case-ranges.ll.bc was generated by passing this file to llvm-as from the 3.3
5*9880d681SAndroid Build Coastguard Worker; release of LLVM. This tests that the bitcode for switches from that release
6*9880d681SAndroid Build Coastguard Worker; can still be read.
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Workerdefine i32 @foo(i32 %x) nounwind ssp uwtable {
9*9880d681SAndroid Build Coastguard Worker; CHECK: define i32 @foo
10*9880d681SAndroid Build Coastguard Worker  %1 = alloca i32, align 4
11*9880d681SAndroid Build Coastguard Worker  %2 = alloca i32, align 4
12*9880d681SAndroid Build Coastguard Worker  store i32 %x, i32* %2, align 4
13*9880d681SAndroid Build Coastguard Worker  %3 = load i32, i32* %2, align 4
14*9880d681SAndroid Build Coastguard Worker  switch i32 %3, label %9 [
15*9880d681SAndroid Build Coastguard Worker; CHECK: switch i32 %3, label %9
16*9880d681SAndroid Build Coastguard Worker    i32 -3, label %4
17*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 -3, label %4
18*9880d681SAndroid Build Coastguard Worker    i32 -2, label %4
19*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 -2, label %4
20*9880d681SAndroid Build Coastguard Worker    i32 -1, label %4
21*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 -1, label %4
22*9880d681SAndroid Build Coastguard Worker    i32 0, label %4
23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 0, label %4
24*9880d681SAndroid Build Coastguard Worker    i32 1, label %4
25*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 1, label %4
26*9880d681SAndroid Build Coastguard Worker    i32 2, label %4
27*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 2, label %4
28*9880d681SAndroid Build Coastguard Worker    i32 4, label %5
29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 4, label %5
30*9880d681SAndroid Build Coastguard Worker    i32 5, label %6
31*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 5, label %6
32*9880d681SAndroid Build Coastguard Worker    i32 6, label %7
33*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 6, label %7
34*9880d681SAndroid Build Coastguard Worker    i32 7, label %8
35*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: i32 7, label %8
36*9880d681SAndroid Build Coastguard Worker  ]
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Worker; <label>:4
39*9880d681SAndroid Build Coastguard Worker  store i32 -1, i32* %1
40*9880d681SAndroid Build Coastguard Worker  br label %11
41*9880d681SAndroid Build Coastguard Worker
42*9880d681SAndroid Build Coastguard Worker; <label>:5
43*9880d681SAndroid Build Coastguard Worker  store i32 2, i32* %1
44*9880d681SAndroid Build Coastguard Worker  br label %11
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Worker; <label>:6
47*9880d681SAndroid Build Coastguard Worker  store i32 1, i32* %1
48*9880d681SAndroid Build Coastguard Worker  br label %11
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Worker; <label>:7
51*9880d681SAndroid Build Coastguard Worker  store i32 4, i32* %1
52*9880d681SAndroid Build Coastguard Worker  br label %11
53*9880d681SAndroid Build Coastguard Worker
54*9880d681SAndroid Build Coastguard Worker; <label>:8
55*9880d681SAndroid Build Coastguard Worker  store i32 3, i32* %1
56*9880d681SAndroid Build Coastguard Worker  br label %11
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker; <label>:9
59*9880d681SAndroid Build Coastguard Worker  br label %10
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Worker; <label>:10
62*9880d681SAndroid Build Coastguard Worker  store i32 0, i32* %1
63*9880d681SAndroid Build Coastguard Worker  br label %11
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Worker; <label>:11
66*9880d681SAndroid Build Coastguard Worker  %12 = load i32, i32* %1
67*9880d681SAndroid Build Coastguard Worker  ret i32 %12
68*9880d681SAndroid Build Coastguard Worker}
69