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