1 ; From Khronos Translator's test case: test/reqd_work_group_size_md.ll
3 ; The purpose of this test is to check that the reqd_work_group_size metadata
4 ; is correctly converted to the LocalSize execution mode for the kernels it is
7 ; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
8 ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
10 ; CHECK: OpMemoryModel
11 ; CHECK-DAG: OpEntryPoint Kernel %[[#ENTRY1:]] "test1"
12 ; CHECK-DAG: OpEntryPoint Kernel %[[#ENTRY2:]] "test2"
13 ; CHECK-DAG: OpEntryPoint Kernel %[[#ENTRY3:]] "test3"
14 ; CHECK-DAG: OpExecutionMode %[[#ENTRY1]] LocalSize 1 2 3
15 ; CHECK-DAG: OpExecutionMode %[[#ENTRY2]] LocalSize 2 3 1
16 ; CHECK-DAG: OpExecutionMode %[[#ENTRY3]] LocalSize 3 1 1
18 define spir_kernel void @test1() !reqd_work_group_size !1 {
23 define spir_kernel void @test2() !reqd_work_group_size !2 {
28 define spir_kernel void @test3() !reqd_work_group_size !3 {
33 !1 = !{i32 1, i32 2, i32 3}