blob: 4b6a12e821e1611ce1b05a1514714dbe6fd6742e [file] [log] [blame]
Dan Gohmanc1be92f2010-10-18 18:04:47 +00001; RUN: opt -basicaa -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
Nick Lewyckyca55ee02009-10-14 19:02:13 +00004define i8 @foo(i8* %ptr) {
Nick Lewycky5c9be672009-10-13 07:48:38 +00005 %P = getelementptr i8* %ptr, i32 0
6 %Q = getelementptr i8* %ptr, i32 1
7; CHECK: getelementptr
8 %X = load i8* %P
Eli Friedman46cb5af2011-09-26 20:15:28 +00009 %Y = atomicrmw add i8* %Q, i8 1 monotonic
Nick Lewycky5c9be672009-10-13 07:48:38 +000010 %Z = load i8* %P
11; CHECK-NOT: = load
Nick Lewyckyca55ee02009-10-14 19:02:13 +000012 %A = sub i8 %X, %Z
13 ret i8 %A
14; CHECK: ret i8 0
Nick Lewycky5c9be672009-10-13 07:48:38 +000015}