1; RUN: llvm-dis < %s.bc| FileCheck %s
2; RUN: verify-uselistorder < %s.bc
3
4; bitwiseOperations.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
5; The test checks that LLVM does not misread bitwise instructions from
6; older bitcode files.
7
8define void @shl(i8 %x1){
9entry:
10; CHECK: %res1 = shl i8 %x1, %x1
11  %res1 = shl i8 %x1, %x1
12
13; CHECK: %res2 = shl nuw i8 %x1, %x1
14  %res2 = shl nuw i8 %x1, %x1
15
16; CHECK: %res3 = shl nsw i8 %x1, %x1
17  %res3 = shl nsw i8 %x1, %x1
18
19; CHECK: %res4 = shl nuw nsw i8 %x1, %x1
20  %res4 = shl nuw nsw i8 %x1, %x1
21
22  ret void
23}
24
25define void @lshr(i8 %x1){
26entry:
27; CHECK: %res1 = lshr i8 %x1, %x1
28  %res1 = lshr i8 %x1, %x1
29
30; CHECK: %res2 = lshr exact i8 %x1, %x1
31  %res2 = lshr exact i8 %x1, %x1
32
33  ret void
34}
35
36define void @ashr(i8 %x1){
37entry:
38; CHECK: %res1 = ashr i8 %x1, %x1
39  %res1 = ashr i8 %x1, %x1
40
41; CHECK-NEXT: %res2 = ashr exact i8 %x1, %x1
42  %res2 = ashr exact i8 %x1, %x1
43
44  ret void
45}
46
47define void @and(i8 %x1){
48entry:
49; CHECK: %res1 = and i8 %x1, %x1
50  %res1 = and i8 %x1, %x1
51
52  ret void
53}
54
55define void @or(i8 %x1){
56entry:
57; CHECK: %res1 = or i8 %x1, %x1
58  %res1 = or i8 %x1, %x1
59
60  ret void
61}
62
63define void @xor(i8 %x1){
64entry:
65; CHECK: %res1 = xor i8 %x1, %x1
66  %res1 = xor i8 %x1, %x1
67
68  ret void
69}
70