/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-options "-fopenmp-simd -O2 -mavx512f -fdump-ipa-icf-optimized" } */ #define N 1024 int a[N]; void test_simdlen1 (void) { int i; #pragma omp simd simdlen (4) for (i = 0; i < N; ++i) a[i] = a[i] + 1; } void test_simdlen2 (void) { int i; #pragma omp simd simdlen (8) for (i = 0; i < N; ++i) a[i] = a[i] + 1; } void test_safelen1 (void) { int i; #pragma omp simd safelen (4) for (i = 0; i < N; ++i) a[i] = a[i] + 1; } void test_safelen2 (void) { int i; #pragma omp simd safelen (8) for (i = 0; i < N; ++i) a[i] = a[i] + 1; } int d[1024]; int test_simduid1 (int j, int b) { int l, c = 0; #pragma omp simd reduction(+: c) for (l = 0; l < b; ++l) c += d[j + l]; return c; } int test_simduid2 (int j, int b) { int l, c2 = 0; #pragma omp simd reduction(+: c2) for (l = 0; l < b; ++l) c2 += d[j + l]; return c2; } /* { dg-final { scan-ipa-dump "Semantic equality hit:test_simduid1/\[0-9+\]+->test_simduid2/\[0-9+\]+" "icf" } } */ /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */