[RISCV] Add shrinkwrap test cases showing gaps in current impl
[llvm-project.git] / llvm / test / CodeGen / SPIRV / execution-mode-reqd_work_group_size.ll
blob6e36b0bd5b9dc11ff914f843327358923b4bcdd5
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
5 ; applied to.
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 {
19 entry:
20   ret void
23 define spir_kernel void @test2() !reqd_work_group_size !2 {
24 entry:
25   ret void
28 define spir_kernel void @test3() !reqd_work_group_size !3 {
29 entry:
30   ret void
33 !1 = !{i32 1, i32 2, i32 3}
34 !2 = !{i32 2, i32 3}
35 !3 = !{i32 3}