[Bitcode] Add compatibility tests for new instructions
[oota-llvm.git] / test / Bitcode / bitwiseInstructions.3.2.ll
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
8 define void @shl(i8 %x1){
9 entry:
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
25 define void @lshr(i8 %x1){
26 entry:
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
36 define void @ashr(i8 %x1){
37 entry:
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
47 define void @and(i8 %x1){
48 entry:
49 ; CHECK: %res1 = and i8 %x1, %x1
50   %res1 = and i8 %x1, %x1
51
52   ret void
53 }
54
55 define void @or(i8 %x1){
56 entry:
57 ; CHECK: %res1 = or i8 %x1, %x1
58   %res1 = or i8 %x1, %x1
59
60   ret void
61 }
62
63 define void @xor(i8 %x1){
64 entry:
65 ; CHECK: %res1 = xor i8 %x1, %x1
66   %res1 = xor i8 %x1, %x1
67
68   ret void
69 }