1 // RUN: %clang_cc1 -no-opaque-pointers -triple s390x-linux-gnu -O2 -emit-llvm \ 2 // RUN: -o - %s 2>&1 | FileCheck %s 3 // REQUIRES: systemz-registered-target 4 5 long *A; 6 long Idx; 7 unsigned long Addr; 8 9 unsigned long fun_BD12_p() { 10 // CHECK-LABEL: define{{.*}} i64 @fun_BD12_p() 11 // CHECK: call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx) 12 asm("lay %0, %1" : "=r" (Addr) : "p" (&A[100])); 13 return Addr; 14 } 15 16 unsigned long fun_BDX12_p() { 17 // CHECK-LABEL: define{{.*}} i64 @fun_BDX12_p() 18 // CHECK: call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx) 19 asm("lay %0, %1" : "=r" (Addr) : "p" (&A[Idx + 100])); 20 return Addr; 21 } 22 23 unsigned long fun_BD20_p() { 24 // CHECK-LABEL: define{{.*}} i64 @fun_BD20_p() 25 // CHECK: call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx) 26 asm("lay %0, %1" : "=r" (Addr) : "p" (&A[1000])); 27 return Addr; 28 } 29 30 unsigned long fun_BDX20_p() { 31 // CHECK-LABEL: define{{.*}} i64 @fun_BDX20_p() 32 // CHECK: call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx) 33 asm("lay %0, %1" : "=r" (Addr) : "p" (&A[Idx + 1000])); 34 return Addr; 35 } 36