1/* { dg-require-effective-target stdint_types } */ 2 3#include <stdint.h> 4#include <string.h> 5#include <stdlib.h> 6 7void f883b (int8_t * result, 8 int16_t * __restrict arg1, 9 uint32_t * __restrict arg2, 10 uint64_t * __restrict arg3, 11 uint8_t * __restrict arg4) 12{ 13 int idx; 14 for (idx=0;idx<96;idx += 1) { 15 result[idx] = (((((((((((-27 + 2+1)>>1) || arg4[idx]) < arg1[idx]) 16 ? (((-27 + 2+1)>>1) || arg4[idx]) 17 : arg1[idx]) 18 >> (arg2[idx] & 31)) ^ 1) - -32)>>7) | -5) & arg3[idx]); 19 } 20} 21 22int8_t result[96]; 23int16_t arg1[96]; 24uint32_t arg2[96]; 25uint64_t arg3[96]; 26uint8_t arg4[96]; 27 28int main (void) 29{ 30 int i; 31 int correct[] = {0x0,0x1,0x2,0x3,0x0,0x1,0x2,0x3,0x8,0x9,0xa,0xb,0x8,0x9, 32 0xa,0xb,0x10,0x11,0x12,0x13,0x10,0x11,0x12,0x13, 33 0x18,0x19,0x1a,0x1b,0x18,0x19,0x1a,0x1b,0x20,0x21,0x22, 34 0x23,0x20,0x21,0x22,0x23,0x28,0x29,0x2a, 35 0x2b,0x28,0x29,0x2a,0x2b,0x30,0x31,0x32,0x33, 36 0x30,0x31,0x32,0x33,0x38,0x39,0x3a,0x3b,0x38,0x39,0x3a, 37 0x3b,0x40,0x41,0x42,0x43,0x40,0x41,0x42,0x43,0x48,0x49, 38 0x4a,0x4b,0x48,0x49,0x4a,0x4b,0x50,0x51, 39 0x52,0x53,0x50,0x51,0x52,0x53,0x58,0x59,0x5a,0x5b, 40 0x58,0x59,0x5a,0x5b}; 41 42 for (i=0; i < 96; i++) 43 arg3[i] = arg2[i] = arg1[i] = arg4[i] = i; 44 45 f883b(result, arg1, arg2, arg3, arg4); 46 47 for (i=0; i < 96; i++) 48 if (result[i] != correct[i]) abort(); 49 50 return 0; 51} 52