1*46f83caeSJonas Paulsson; RUN: llc -mtriple=s390x-linux-gnu < %s | FileCheck %s 2*46f83caeSJonas Paulsson 3*46f83caeSJonas Paulsson@Addr = global i64 0, align 8 4*46f83caeSJonas Paulsson@A = global i64* null, align 8 5*46f83caeSJonas Paulsson@Idx = global i64 0, align 8 6*46f83caeSJonas Paulsson 7*46f83caeSJonas Paulssondefine i64 @fun_BD12_p() { 8*46f83caeSJonas Paulsson; CHECK-LABEL: fun_BD12_p: 9*46f83caeSJonas Paulsson; CHECK: #APP 10*46f83caeSJonas Paulsson; CHECK: lay %r2, 800(%r1) 11*46f83caeSJonas Paulssonentry: 12*46f83caeSJonas Paulsson %0 = load i64*, i64** @A 13*46f83caeSJonas Paulsson %arrayidx = getelementptr inbounds i64, i64* %0, i64 100 14*46f83caeSJonas Paulsson %1 = tail call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx) 15*46f83caeSJonas Paulsson store i64 %1, i64* @Addr 16*46f83caeSJonas Paulsson ret i64 %1 17*46f83caeSJonas Paulsson} 18*46f83caeSJonas Paulsson 19*46f83caeSJonas Paulssondefine i64 @fun_BDX12_p() { 20*46f83caeSJonas Paulsson; CHECK-LABEL: fun_BDX12_p: 21*46f83caeSJonas Paulsson; CHECK: #APP 22*46f83caeSJonas Paulsson; CHECK: lay %r2, 800(%r1,%r2) 23*46f83caeSJonas Paulssonentry: 24*46f83caeSJonas Paulsson %0 = load i64*, i64** @A 25*46f83caeSJonas Paulsson %1 = load i64, i64* @Idx 26*46f83caeSJonas Paulsson %add = add nsw i64 %1, 100 27*46f83caeSJonas Paulsson %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add 28*46f83caeSJonas Paulsson %2 = tail call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx) 29*46f83caeSJonas Paulsson store i64 %2, i64* @Addr 30*46f83caeSJonas Paulsson ret i64 %2 31*46f83caeSJonas Paulsson} 32*46f83caeSJonas Paulsson 33*46f83caeSJonas Paulssondefine i64 @fun_BD20_p() { 34*46f83caeSJonas Paulsson; CHECK-LABEL: fun_BD20_p: 35*46f83caeSJonas Paulsson; CHECK: #APP 36*46f83caeSJonas Paulsson; CHECK: lay %r2, 8000(%r1) 37*46f83caeSJonas Paulssonentry: 38*46f83caeSJonas Paulsson %0 = load i64*, i64** @A 39*46f83caeSJonas Paulsson %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000 40*46f83caeSJonas Paulsson %1 = tail call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx) 41*46f83caeSJonas Paulsson store i64 %1, i64* @Addr 42*46f83caeSJonas Paulsson ret i64 %1 43*46f83caeSJonas Paulsson} 44*46f83caeSJonas Paulsson 45*46f83caeSJonas Paulssondefine i64 @fun_BDX20_p() { 46*46f83caeSJonas Paulsson; CHECK-LABEL: fun_BDX20_p: 47*46f83caeSJonas Paulsson; CHECK: #APP 48*46f83caeSJonas Paulsson; CHECK: lay %r2, 8000(%r1,%r2) 49*46f83caeSJonas Paulssonentry: 50*46f83caeSJonas Paulsson %0 = load i64*, i64** @A 51*46f83caeSJonas Paulsson %1 = load i64, i64* @Idx 52*46f83caeSJonas Paulsson %add = add nsw i64 %1, 1000 53*46f83caeSJonas Paulsson %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add 54*46f83caeSJonas Paulsson %2 = tail call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx) 55*46f83caeSJonas Paulsson store i64 %2, i64* @Addr 56*46f83caeSJonas Paulsson ret i64 %2 57*46f83caeSJonas Paulsson} 58