blob: 64754712d43a7fbe575a5c947fbe659ad86aa126 [file] [log] [blame]
Nick Lewyckyca55ee02009-10-14 19:02:13 +00001; RUN: opt -gvn -instcombine -S < %s | FileCheck %s
Kenneth Uildriksb908f8a2009-11-03 15:29:06 +00002target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
Nick Lewycky5c9be672009-10-13 07:48:38 +00003
4declare i8 @llvm.atomic.load.add.i8.p0i8(i8*, i8)
5
Nick Lewyckyca55ee02009-10-14 19:02:13 +00006define i8 @foo(i8* %ptr) {
Nick Lewycky5c9be672009-10-13 07:48:38 +00007 %P = getelementptr i8* %ptr, i32 0
8 %Q = getelementptr i8* %ptr, i32 1
9; CHECK: getelementptr
10 %X = load i8* %P
Nick Lewycky5c9be672009-10-13 07:48:38 +000011 %Y = call i8 @llvm.atomic.load.add.i8.p0i8(i8* %Q, i8 1)
12 %Z = load i8* %P
13; CHECK-NOT: = load
Nick Lewyckyca55ee02009-10-14 19:02:13 +000014 %A = sub i8 %X, %Z
15 ret i8 %A
16; CHECK: ret i8 0
Nick Lewycky5c9be672009-10-13 07:48:38 +000017}