brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 0f84450 Raw
98 lines · plain
1// RUN: %clang_cc1 -emit-llvm -O0 -cl-std=CL2.0 -o - %s | FileCheck %s2// RUN: %clang_cc1 -emit-llvm -O0 -cl-std=CL1.2 -o - %s | FileCheck %s3 4/*** for ***/5void for_count()6{7// CHECK-LABEL: for_count8    __attribute__((opencl_unroll_hint(8)))9    for( int i = 0; i < 1000; ++i);10// CHECK: br label %{{.*}}, !llvm.loop ![[FOR_COUNT:.*]]11}12 13void for_disable()14{15// CHECK-LABEL: for_disable16    __attribute__((opencl_unroll_hint(1)))17    for( int i = 0; i < 1000; ++i);18// CHECK: br label %{{.*}}, !llvm.loop ![[FOR_DISABLE:.*]]19}20 21void for_enable()22{23// CHECK-LABEL: for_enable24    __attribute__((opencl_unroll_hint))25    for( int i = 0; i < 1000; ++i);26// CHECK: br label %{{.*}}, !llvm.loop ![[FOR_ENABLE:.*]]27}28 29/*** while ***/30void while_count()31{32// CHECK-LABEL: while_count33    int i = 1000;34    __attribute__((opencl_unroll_hint(8)))35    while(i-->0);36// CHECK: br label %{{.*}}, !llvm.loop ![[WHILE_COUNT:.*]]37}38 39void while_disable()40{41// CHECK-LABEL: while_disable42    int i = 1000;43    __attribute__((opencl_unroll_hint(1)))44    while(i-->0);45// CHECK: br label %{{.*}}, !llvm.loop ![[WHILE_DISABLE:.*]]46}47 48void while_enable()49{50// CHECK-LABEL: while_enable51    int i = 1000;52    __attribute__((opencl_unroll_hint))53    while(i-->0);54// CHECK: br label %{{.*}}, !llvm.loop ![[WHILE_ENABLE:.*]]55}56 57/*** do ***/58void do_count()59{60// CHECK-LABEL: do_count61    int i = 1000;62    __attribute__((opencl_unroll_hint(8)))63    do {} while(i--> 0);64// CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !llvm.loop ![[DO_COUNT:.*]]65}66 67void do_disable()68{69// CHECK-LABEL: do_disable70    int i = 1000;71    __attribute__((opencl_unroll_hint(1)))72    do {} while(i--> 0);73// CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !llvm.loop ![[DO_DISABLE:.*]]74}75 76void do_enable()77{78// CHECK-LABEL: do_enable79    int i = 1000;80    __attribute__((opencl_unroll_hint))81    do {} while(i--> 0);82// CHECK: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}, !llvm.loop ![[DO_ENABLE:.*]]83}84 85 86// CHECK: ![[FOR_COUNT]]     =  distinct !{![[FOR_COUNT]],  ![[COUNT:.*]]}87// CHECK: ![[COUNT]]         =  !{!"llvm.loop.unroll.count", i32 8}88// CHECK: ![[FOR_DISABLE]]   =  distinct !{![[FOR_DISABLE]],  ![[DISABLE:.*]]}89// CHECK: ![[DISABLE]]       =  !{!"llvm.loop.unroll.disable"}90// CHECK: ![[FOR_ENABLE]]      =  distinct !{![[FOR_ENABLE]],  ![[ENABLE:.*]]}91// CHECK: ![[ENABLE]]          =  !{!"llvm.loop.unroll.enable"}92// CHECK: ![[WHILE_COUNT]]   =  distinct !{![[WHILE_COUNT]],    ![[COUNT]]}93// CHECK: ![[WHILE_DISABLE]] =  distinct !{![[WHILE_DISABLE]],  ![[DISABLE]]}94// CHECK: ![[WHILE_ENABLE]]    =  distinct !{![[WHILE_ENABLE]],     ![[ENABLE]]}95// CHECK: ![[DO_COUNT]]      =  distinct !{![[DO_COUNT]],       ![[COUNT]]}96// CHECK: ![[DO_DISABLE]]    =  distinct !{![[DO_DISABLE]],     ![[DISABLE]]}97// CHECK: ![[DO_ENABLE]]       =  distinct !{![[DO_ENABLE]],        ![[ENABLE]]}98