switch-conversion.c 491 B

123456789101112131415161718192021222324252627282930313233343536
  1. /* PR tree-optimization/85063 */
  2. /* { dg-additional-options "-ftree-switch-conversion" } */
  3. #include <stdlib.h>
  4. #pragma omp declare target
  5. static int __attribute__((noinline)) foo (int n)
  6. {
  7. switch (n & 3)
  8. {
  9. case 0: return 4;
  10. case 1: return 3;
  11. case 2: return 2;
  12. default:
  13. return 1;
  14. }
  15. }
  16. #pragma omp end declare target
  17. int
  18. main (void)
  19. {
  20. int n[1];
  21. n[0] = 4;
  22. #pragma omp target
  23. {
  24. n[0] = foo (n[0]);
  25. }
  26. if (n[0] != 4)
  27. abort ();
  28. return 0;
  29. }