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 } 70