blob: 97a92517dca8bc9bf0305926ce290019c24d9d55 [file] [log] [blame]
Dan Gohman02538ac2010-10-18 18:04:47 +00001; RUN: opt -basicaa -gvn -instcombine -S < %s | FileCheck %s
Kenneth Uildriks90fedc62009-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 Lewyckye2782c72009-10-13 07:48:38 +00003
Nick Lewyckyf01ba002009-10-14 19:02:13 +00004define i8 @foo(i8* %ptr) {
David Blaikie79e6c742015-02-27 19:29:02 +00005 %P = getelementptr i8, i8* %ptr, i32 0
6 %Q = getelementptr i8, i8* %ptr, i32 1
Nick Lewyckye2782c72009-10-13 07:48:38 +00007; CHECK: getelementptr
David Blaikiea79ac142015-02-27 21:17:42 +00008 %X = load i8, i8* %P
Eli Friedman5c918912011-09-26 20:15:28 +00009 %Y = atomicrmw add i8* %Q, i8 1 monotonic
David Blaikiea79ac142015-02-27 21:17:42 +000010 %Z = load i8, i8* %P
Nick Lewyckye2782c72009-10-13 07:48:38 +000011; CHECK-NOT: = load
Nick Lewyckyf01ba002009-10-14 19:02:13 +000012 %A = sub i8 %X, %Z
13 ret i8 %A
14; CHECK: ret i8 0
Nick Lewyckye2782c72009-10-13 07:48:38 +000015}