1// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s 2 3// FIXME: A bug in ParsedAttributes causes the order of the attributes to be 4// reversed. The checks are consequently in the reverse order below. 5 6// CHECK: #pragma clang loop interleave_count(8) 7// CHECK-NEXT: #pragma clang loop vectorize_width(4) 8 9void test(int *List, int Length) { 10 int i = 0; 11#pragma clang loop vectorize_width(4) 12#pragma clang loop interleave_count(8) 13// CHECK-NEXT: while (i < Length) 14 while (i < Length) { 15 List[i] = i * 2; 16 i++; 17 } 18 19// CHECK: #pragma clang loop interleave(disable) 20// CHECK-NEXT: #pragma clang loop vectorize(enable) 21 22#pragma clang loop vectorize(enable) 23#pragma clang loop interleave(disable) 24// CHECK-NEXT: while (i - 1 < Length) 25 while (i - 1 < Length) { 26 List[i] = i * 2; 27 i++; 28 } 29 30// CHECK: #pragma clang loop interleave(enable) 31// CHECK-NEXT: #pragma clang loop vectorize(disable) 32 33#pragma clang loop vectorize(disable) 34#pragma clang loop interleave(enable) 35// CHECK-NEXT: while (i - 2 < Length) 36 while (i - 2 < Length) { 37 List[i] = i * 2; 38 i++; 39 } 40} 41