blob: 5ea26e76a6af15149b5f4deb1dbad1b7a65ff4bd [file] [log] [blame]
Nick Lewyckyca55ee02009-10-14 19:02:13 +00001; RUN: opt -gvn -instcombine -S < %s | FileCheck %s
Nick Lewycky5c9be672009-10-13 07:48:38 +00002
3declare i8 @llvm.atomic.load.add.i8.p0i8(i8*, i8)
4
Nick Lewyckyca55ee02009-10-14 19:02:13 +00005define i8 @foo(i8* %ptr) {
Nick Lewycky5c9be672009-10-13 07:48:38 +00006 %P = getelementptr i8* %ptr, i32 0
7 %Q = getelementptr i8* %ptr, i32 1
8; CHECK: getelementptr
9 %X = load i8* %P
Nick Lewycky5c9be672009-10-13 07:48:38 +000010 %Y = call i8 @llvm.atomic.load.add.i8.p0i8(i8* %Q, i8 1)
11 %Z = load i8* %P
12; CHECK-NOT: = load
Nick Lewyckyca55ee02009-10-14 19:02:13 +000013 %A = sub i8 %X, %Z
14 ret i8 %A
15; CHECK: ret i8 0
Nick Lewycky5c9be672009-10-13 07:48:38 +000016}