1/* { dg-do compile } */ 2/* { dg-options "-fopenmp -O2 -std=c99" } */ 3 4typedef __SIZE_TYPE__ size_t; 5 6typedef struct { 7 int _flags; 8} FILE; 9 10extern FILE *fopen (__const char *__restrict __filename, 11 __const char *__restrict __modes); 12extern size_t fread (void *__restrict __ptr, size_t __size, 13 size_t __n, FILE *__restrict __stream) ; 14extern int fclose (FILE *__stream); 15extern size_t fwrite (__const void *__restrict __ptr, size_t __size, 16 size_t __n, FILE *__restrict __s) ; 17 18extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; 19 20extern size_t strlen (__const char *__s) 21 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); 22extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) 23 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); 24 25extern int __attribute__ ((__nothrow__)) atoi (__const char *__nptr); 26 27extern float cabsf (float _Complex __z) __attribute__ ((__nothrow__)); extern float __cabsf (float _Complex __z) __attribute__ ((__nothrow__)); 28extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__)); 29 30int main(int argc , char * argv[]) 31{ 32 int AA, BB, CC; 33 AA = 99; 34 BB = 99; 35 CC = (int)atoi(argv[3]); 36 int m,n,s; 37 int DD,EE,num_s; 38 39 40 float _Complex * restrict A; 41 A = malloc((AA) * (BB) * (CC) * sizeof(float _Complex)); 42 int A_slice_stride; 43 A_slice_stride = (AA) * (BB) ; 44 45 46 float * restrict f; 47 f = malloc(CC * sizeof(float)); 48 49 50 51 FILE *fp; 52 53 fp = fopen(argv[1],"rb"); 54 fread(A,sizeof(float _Complex),AA * BB * CC,fp); 55 fclose(fp); 56 57 fp = fopen(argv[2],"rb"); 58 fread(f,sizeof(float),CC,fp); 59 fclose(fp); 60 61 62 DD = (int)atoi(argv[4]); 63 EE = (int)atoi(argv[5]); 64 65 num_s = (EE - DD) + 1; 66 67 68 69 float * restrict INPUT; 70 INPUT = malloc(4 * 4 * sizeof(float)); 71 72 73 74 int m_max = 99; 75 int n_max = 00; 76 float h = 0.1; 77 float FF = 10; 78 79 if ((__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (5))) || (__builtin_constant_p ("plane") && strlen ("plane") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("plane") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("plane"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "plane") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("plane"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) && (__s2_len = strlen ("plane"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("plane"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("plane"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("plane"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("plane"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "plane")))); }) : (__extension__ (__builtin_constant_p (5) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (5))) || (__builtin_constant_p ("plane") && strlen ("plane") < ((size_t) (5)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("plane") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("plane"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "plane") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("plane"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("plane") && ((size_t)(const void *)(("plane") + 1) - (size_t)(const void *)("plane") == 1) && (__s2_len = strlen ("plane"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "plane") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("plane"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("plane"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("plane"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("plane"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "plane")))); }) : strncmp (argv[6], "plane", 5)))))==0) { 80 m_max = INPUT[ ( ((1)-1) + ( ((1)-1)*4 ))]; 81 n_max = INPUT[ ( ((2)-1) + ( ((1)-1)*4 ))]; 82 h = INPUT[ ( ((3)-1) + ( ((1)-1)*4 ))]; 83 FF = INPUT[ ( ((4)-1) + ( ((1)-1)*4 ))]; 84 } 85 86 if ((__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (6))) || (__builtin_constant_p ("sphere") && strlen ("sphere") < ((size_t) (6)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("sphere") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("sphere"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "sphere") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("sphere"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) && (__s2_len = strlen ("sphere"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("sphere"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("sphere"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("sphere"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("sphere"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "sphere")))); }) : (__extension__ (__builtin_constant_p (6) && ((__builtin_constant_p (argv[6]) && strlen (argv[6]) < ((size_t) (6))) || (__builtin_constant_p ("sphere") && strlen ("sphere") < ((size_t) (6)))) ? __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (argv[6]) && __builtin_constant_p ("sphere") && (__s1_len = strlen (argv[6]), __s2_len = strlen ("sphere"), (!((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) || __s2_len >= 4)) ? __builtin_strcmp (argv[6], "sphere") : (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) && (__s1_len = strlen (argv[6]), __s1_len < 4) ? (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ("sphere"); register int __result = (((__const unsigned char *) (__const char *) (argv[6]))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) (argv[6]))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) (argv[6]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("sphere") && ((size_t)(const void *)(("sphere") + 1) - (size_t)(const void *)("sphere") == 1) && (__s2_len = strlen ("sphere"), __s2_len < 4) ? (__builtin_constant_p (argv[6]) && ((size_t)(const void *)((argv[6]) + 1) - (size_t)(const void *)(argv[6]) == 1) ? __builtin_strcmp (argv[6], "sphere") : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) (argv[6]); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ("sphere"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ("sphere"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ("sphere"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ("sphere"))[3]); } } __result; }))) : __builtin_strcmp (argv[6], "sphere")))); }) : strncmp (argv[6], "sphere", 6)))))==0) { 87 m_max = 181; 88 n_max = 361; 89 h = INPUT[ ( ((3)-1) + ( ((1)-1)*4 ))]; 90 FF = INPUT[ ( ((4)-1) + ( ((1)-1)*4 ))]; 91 } 92 93 94 95 96 97 float * restrict X; 98 X = malloc(m_max * n_max * sizeof(float)); 99 100 101 float * restrict Y; 102 Y = malloc(m_max * n_max * sizeof(float)); 103 104 105 float * restrict Z; 106 Z = malloc(m_max * n_max * sizeof(float)); 107 108 109 110 111 112 113 float _Complex * restrict P; 114 P = malloc(m_max * n_max * sizeof(float _Complex)); 115 116 117 float _Complex * restrict Ps; 118 Ps = malloc((m_max) * (n_max) * (num_s) * sizeof(float _Complex)); 119 int Ps_slice_stride; 120 Ps_slice_stride = (m_max) * (n_max) ; 121 122 123 float GG; 124 float HH; 125 126 127 128 129 for ( n = 1 ; n <= 99 ; n++ ) { 130 for ( m = 1 ; m <= 99 ; m++ ) { 131 132 133 134 135 136 X[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ; 137 Y[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ; 138 Z[ ( ((m)-1) + ( ((n)-1)*m_max ))] = FF ; 139 } 140 } 141 int KK = atoi(argv[8]); 142 int LL = 3 * KK; 143 144 145 float * restrict MM; 146 MM = malloc(4 * LL * sizeof(float)); 147 for ( n = 1 ; n <= n_max ; n++) { 148 for ( m = 1 ; m <= m_max ; m++) { 149 for ( s = 1 ; s <= num_s ; s++) { 150 Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + (((s)-1)*(Ps_slice_stride)) ) ] = 0.0 + 0.0 * (__extension__ 1.0iF); 151 } 152 } 153 } 154 155 156 int liter ; 157 158#pragma omp parallel for private(m,liter,s) 159 for ( n = 1 ; n <= n_max ; n++) { 160 for ( m = 1 ; m <= m_max ; m++) { 161 for ( liter = 1 ; liter <= KK ; liter++ ) { 162 for ( s = 1 ; s <= num_s ; s++) { 163 164 165 int LM_column; 166 float NN[4]; 167 float OO[4]; 168 float PP[4]; 169 float QQ[4]; 170 float k; 171 int s_index; 172 float RR; 173 174 s_index = s + (DD -1); 175 RR = f[ ( (s_index)-1) ]; 176 k = 99.0; 177 178 NN[1 -1] = X[ ( ((m)-1) + ( ((n)-1)*m_max ))]; 179 NN[2 -1] = Y[ ( ((m)-1) + ( ((n)-1)*m_max ))]; 180 NN[3 -1] = Z[ ( ((m)-1) + ( ((n)-1)*m_max ))]; 181 NN[4 -1] = 1.0; 182 183 LM_column = ((liter -1) * 3) + 1; 184 OO[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))]; 185 OO[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))]; 186 OO[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))]; 187 OO[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))]; 188 189 LM_column = ((liter -1) * 3) + 2; 190 PP[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))]; 191 PP[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))]; 192 PP[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))]; 193 PP[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))]; 194 195 LM_column = ((liter -1) * 3) + 3; 196 QQ[1 -1] = MM[ ( ((1)-1) + ( ((LM_column)-1)*4 ))]; 197 QQ[2 -1] = MM[ ( ((2)-1) + ( ((LM_column)-1)*4 ))]; 198 QQ[3 -1] = MM[ ( ((3)-1) + ( ((LM_column)-1)*4 ))]; 199 QQ[4 -1] = MM[ ( ((4)-1) + ( ((LM_column)-1)*4 ))]; 200 201 } 202 } 203 } 204 } 205 206 207#pragma omp parallel for private(m) 208 for ( n = 1 ; n <= n_max ; n++) { 209 for ( m = 1 ; m <= m_max ; m++) { 210 211 212 213 int s; 214 float SSS; 215 float f1,f2,p1,p2,TT,h,FFF; 216 SSS = 0.0; 217 for ( s = 2 ; s <= num_s ; s++) { 218 f1 = f[ ( ((s-1) + (DD - 1))-1) ]; 219 f2 = f[ ( ((s) + (DD - 1))-1) ]; 220 p1 = cabsf(Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + ((((s-1))-1)*(Ps_slice_stride)) ) ]) ; 221 p2 = cabsf(Ps[ ( ((m)-1) + (((n)-1)*(m_max)) + (((s)-1)*(Ps_slice_stride)) ) ]) ; 222 223 h = f2 - f1; 224 225 FFF = (f1 + f2) / 2.0; 226 227 228 TT = (1.0 / sqrtf(2.0)) * (((h * p1) + (0.5 * h * (p2 - p1))) * (1.0 / FFF)); 229 230 SSS += TT; 231 232 } 233 234 P[ ( ((m)-1) + ( ((n)-1)*m_max ))] = SSS + ((__extension__ 1.0iF) * 0.0); 235 } 236 } 237 238 239 240 241 242 fp = fopen(argv[10],"wb"); 243 fwrite(X,sizeof(float),m_max * n_max,fp); 244 fclose(fp); 245 246 fp = fopen(argv[11],"wb"); 247 fwrite(Y,sizeof(float),m_max * n_max,fp); 248 fclose(fp); 249 250 fp = fopen(argv[12],"wb"); 251 fwrite(Z,sizeof(float),m_max * n_max,fp); 252 fclose(fp); 253 254 fp = fopen(argv[13],"wb"); 255 fwrite(P,sizeof(float _Complex),m_max * n_max,fp); 256 fclose(fp); 257 258 259 260 return(0); 261} 262