// RUN: %clang_cc1 -triple s390x-ibm-zos -O2 -emit-llvm %s -o - | FileCheck %s --check-prefix=X64 #include void *__malloc31(size_t); int test_1() { // X64-LABEL: define {{.*}} i32 @test_1() // X64: ret i32 %add20 int *__ptr32 a; int *b; int i; int sum1, sum2, sum3; a = (int *__ptr32)__malloc31(sizeof(int) * 10); b = a; sum1 = 0; for (i = 0; i < 10; ++i) { a[i] = i; sum1 += i; } sum2 = 0; for (i = 0; i < 10; ++i) { sum2 += a[i]; } sum3 = 0; for (i = 0; i < 10; ++i) { sum3 += b[i]; } return (sum1 + sum2 + sum3); } int test_2() { // X64-LABEL: define {{.*}} i32 @test_2() // X64: ret i32 4 int *a = (int *)__malloc31(sizeof(int)); int *__ptr32 b; *a = 99; b = a; *b = 44; // Test should return 4 return (*b - 40); } int test_3() { // X64-LABEL: define {{.*}} i32 @test_3() // X64: ret i32 4 int *a = (int *)__malloc31(sizeof(int)); int *__ptr32 b; *a = 99; b = a; // Test should return 4 return (*b - 95); } int test_4() { // X64-LABEL: define {{.*}} i32 @test_4() // X64: ret i32 1 int *a = (int *)__malloc31(sizeof(int)); float *d = (float *)__malloc31(sizeof(float)); int *__ptr32 b; int *c; float *__ptr32 e; float *f; *a = 0; *d = 0.0; b = a; c = a; e = d; f = d; // Test should return 1 return (b == c && e == f); }