1*67e74705SXin Li // RUN: %clang_cc1 -triple i386-unknown-unknown -O1 -emit-llvm -o - %s | FileCheck %s 2*67e74705SXin Li // CHECK-LABEL: define i32 @f0 3*67e74705SXin Li // CHECK: ret i32 1 4*67e74705SXin Li // CHECK-LABEL: define i32 @f1 5*67e74705SXin Li // CHECK: ret i32 1 6*67e74705SXin Li // CHECK-LABEL: define i32 @f2 7*67e74705SXin Li // CHECK: ret i32 1 8*67e74705SXin Li // <rdr://6115726> 9*67e74705SXin Li f0()10*67e74705SXin Liint f0() { 11*67e74705SXin Li int x; 12*67e74705SXin Li unsigned short n = 1; 13*67e74705SXin Li int *a = &x; 14*67e74705SXin Li int *b = &x; 15*67e74705SXin Li a = a - n; 16*67e74705SXin Li b -= n; 17*67e74705SXin Li return a == b; 18*67e74705SXin Li } 19*67e74705SXin Li f1(int * a)20*67e74705SXin Liint f1(int *a) { 21*67e74705SXin Li long b = a - (int*) 1; 22*67e74705SXin Li a -= (int*) 1; 23*67e74705SXin Li return b == (long) a; 24*67e74705SXin Li } 25*67e74705SXin Li f2(long n)26*67e74705SXin Liint f2(long n) { 27*67e74705SXin Li int *b = n + (int*) 1; 28*67e74705SXin Li n += (int*) 1; 29*67e74705SXin Li return b == (int*) n; 30*67e74705SXin Li } 31*67e74705SXin Li 32