xref: /aosp_15_r20/external/clang/test/Frontend/optimization-remark-analysis.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang -O1 -fvectorize -target x86_64-unknown-unknown -emit-llvm -Rpass-analysis -S %s -o - 2>&1 | FileCheck %s --check-prefix=RPASS
2*67e74705SXin Li // RUN: %clang -O1 -fvectorize -target x86_64-unknown-unknown -emit-llvm -S %s -o - 2>&1 | FileCheck %s
3*67e74705SXin Li 
4*67e74705SXin Li // RPASS: {{.*}}:7:8: remark: loop not vectorized: loop contains a switch statement
5*67e74705SXin Li // CHECK-NOT: {{.*}}:7:8: remark: loop not vectorized: loop contains a switch statement
6*67e74705SXin Li 
foo(int N,int * Array)7*67e74705SXin Li double foo(int N, int *Array) {
8*67e74705SXin Li   double v = 0.0;
9*67e74705SXin Li 
10*67e74705SXin Li   #pragma clang loop vectorize(enable)
11*67e74705SXin Li   for (int i = 0; i < N; i++) {
12*67e74705SXin Li     switch(Array[i]) {
13*67e74705SXin Li     case 0: v += 1.0f; break;
14*67e74705SXin Li     case 1: v -= 0.5f; break;
15*67e74705SXin Li     case 2: v *= 2.0f; break;
16*67e74705SXin Li     default: v = 0.0f;
17*67e74705SXin Li     }
18*67e74705SXin Li   }
19*67e74705SXin Li 
20*67e74705SXin Li   return v;
21*67e74705SXin Li }
22