98 lines · plain
1RUN: llvm-opt-report -r %p %p/Inputs/or.yaml | FileCheck -strict-whitespace %s2RUN: llvm-opt-report -s -r %p %p/Inputs/or.yaml | FileCheck -strict-whitespace -check-prefix=CHECK-SUCCINCT %s3 4; CHECK: < {{.*[/\]}}or.c5; CHECK-NEXT: 1 | void bar();6; CHECK-NEXT: 2 | void foo() { bar(); }7; CHECK-NEXT: 3 | 8; CHECK-NEXT: 4 | #include "or.h"9; CHECK-NEXT: 5 | 10; CHECK-NEXT: 6 | void Test(int *res, int *c, int *d, int *p, int n) {11; CHECK-NEXT: 7 | int i;12; CHECK-NEXT: 8 | 13; CHECK-NEXT: 9 | #pragma clang loop vectorize(assume_safety)14; CHECK-NEXT: 10 V4,2 | for (i = 0; i < 1600; i++) {15; CHECK-NEXT: 11 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];16; CHECK-NEXT: 12 | }17; CHECK-NEXT: 13 | 18; CHECK-NEXT: 14 U16 | for (i = 0; i < 16; i++) {19; CHECK-NEXT: 15 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];20; CHECK-NEXT: 16 | }21; CHECK-NEXT: 17 | 22; CHECK-NEXT: 18 I | foo();23; CHECK-NEXT: 19 | 24; CHECK-NEXT: 20 | foo(); bar(); foo();25; CHECK-NEXT: I | ^26; CHECK-NEXT: I | ^27; CHECK-NEXT: 21 | }28; CHECK-NEXT: 22 | 29 30; CHECK: < {{.*[/\]}}or.h31; CHECK-NEXT: 1 | void TestH(int *res, int *c, int *d, int *p, int n) {32; CHECK-NEXT: 2 | int i;33; CHECK-NEXT: 3 | 34; CHECK-NEXT: 4 | #pragma clang loop vectorize(assume_safety)35; CHECK-NEXT: 5 V4,2 | for (i = 0; i < 1600; i++) {36; CHECK-NEXT: 6 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];37; CHECK-NEXT: 7 | }38; CHECK-NEXT: 8 | 39; CHECK-NEXT: 9 U16 | for (i = 0; i < 16; i++) {40; CHECK-NEXT: 10 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];41; CHECK-NEXT: 11 | }42; CHECK-NEXT: 12 | 43; CHECK-NEXT: 13 I | foo();44; CHECK-NEXT: 14 | 45; CHECK-NEXT: 15 | foo(); bar(); foo();46; CHECK-NEXT: I | ^47; CHECK-NEXT: I | ^48; CHECK-NEXT: 16 | }49; CHECK-NEXT: 17 | 50 51; CHECK-SUCCINCT: < {{.*[/\]}}or.c52; CHECK-SUCCINCT-NEXT: 1 | void bar();53; CHECK-SUCCINCT-NEXT: 2 | void foo() { bar(); }54; CHECK-SUCCINCT-NEXT: 3 | 55; CHECK-SUCCINCT-NEXT: 4 | #include "or.h"56; CHECK-SUCCINCT-NEXT: 5 | 57; CHECK-SUCCINCT-NEXT: 6 | void Test(int *res, int *c, int *d, int *p, int n) {58; CHECK-SUCCINCT-NEXT: 7 | int i;59; CHECK-SUCCINCT-NEXT: 8 | 60; CHECK-SUCCINCT-NEXT: 9 | #pragma clang loop vectorize(assume_safety)61; CHECK-SUCCINCT-NEXT: 10 V | for (i = 0; i < 1600; i++) {62; CHECK-SUCCINCT-NEXT: 11 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];63; CHECK-SUCCINCT-NEXT: 12 | }64; CHECK-SUCCINCT-NEXT: 13 | 65; CHECK-SUCCINCT-NEXT: 14 U | for (i = 0; i < 16; i++) {66; CHECK-SUCCINCT-NEXT: 15 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];67; CHECK-SUCCINCT-NEXT: 16 | }68; CHECK-SUCCINCT-NEXT: 17 | 69; CHECK-SUCCINCT-NEXT: 18 I | foo();70; CHECK-SUCCINCT-NEXT: 19 | 71; CHECK-SUCCINCT-NEXT: 20 | foo(); bar(); foo();72; CHECK-SUCCINCT-NEXT: I | ^73; CHECK-SUCCINCT-NEXT: I | ^74; CHECK-SUCCINCT-NEXT: 21 | }75; CHECK-SUCCINCT-NEXT: 22 | 76 77CHECK-SUCCINCT: < {{.*[/\]}}or.h78; CHECK-SUCCINCT-NEXT: 1 | void TestH(int *res, int *c, int *d, int *p, int n) {79; CHECK-SUCCINCT-NEXT: 2 | int i;80; CHECK-SUCCINCT-NEXT: 3 | 81; CHECK-SUCCINCT-NEXT: 4 | #pragma clang loop vectorize(assume_safety)82; CHECK-SUCCINCT-NEXT: 5 V | for (i = 0; i < 1600; i++) {83; CHECK-SUCCINCT-NEXT: 6 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];84; CHECK-SUCCINCT-NEXT: 7 | }85; CHECK-SUCCINCT-NEXT: 8 | 86; CHECK-SUCCINCT-NEXT: 9 U | for (i = 0; i < 16; i++) {87; CHECK-SUCCINCT-NEXT: 10 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];88; CHECK-SUCCINCT-NEXT: 11 | }89; CHECK-SUCCINCT-NEXT: 12 | 90; CHECK-SUCCINCT-NEXT: 13 I | foo();91; CHECK-SUCCINCT-NEXT: 14 | 92; CHECK-SUCCINCT-NEXT: 15 | foo(); bar(); foo();93; CHECK-SUCCINCT-NEXT: I | ^94; CHECK-SUCCINCT-NEXT: I | ^95; CHECK-SUCCINCT-NEXT: 16 | }96; CHECK-SUCCINCT-NEXT: 17 | 97 98