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 Lidouble 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