| ; RUN: split-file %s %t |
| ; RUN: opt -S --dxil-translate-metadata %t/only.ll | FileCheck %t/only.ll |
| ; RUN: opt -S --dxil-translate-metadata %t/min.ll | FileCheck %t/min.ll |
| ; RUN: opt -S --dxil-translate-metadata %t/max.ll | FileCheck %t/max.ll |
| ; RUN: opt -S --dxil-translate-metadata %t/pref.ll | FileCheck %t/pref.ll |
| |
| ; RUN: llc --filetype=obj %t/only.ll -o - | obj2yaml | FileCheck %t/only.ll --check-prefix=OBJ |
| ; RUN: llc --filetype=obj %t/min.ll -o - | obj2yaml | FileCheck %t/min.ll --check-prefix=OBJ |
| ; RUN: llc --filetype=obj %t/max.ll -o - | obj2yaml | FileCheck %t/max.ll --check-prefix=OBJ |
| ; RUN: llc --filetype=obj %t/pref.ll -o - | obj2yaml | FileCheck %t/pref.ll --check-prefix=OBJ |
| |
| ; Test that wave size/range metadata is correctly generated with the correct tag |
| |
| ;--- only.ll |
| |
| ; CHECK: !dx.entryPoints = !{![[#ENTRY:]]} |
| ; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]} |
| ; CHECK: ![[#PROPS]] = !{{{.*}}i32 11, ![[#WAVE_SIZE:]]{{.*}}} |
| ; CHECK: ![[#WAVE_SIZE]] = !{i32 16} |
| |
| ; OBJ: - Name: PSV0 |
| ; OBJ: PSVInfo: |
| ; OBJ: MinimumWaveLaneCount: 16 |
| ; OBJ: MaximumWaveLaneCount: 16 |
| |
| target triple = "dxil-unknown-shadermodel6.6-compute" |
| |
| define void @main() #0 { |
| entry: |
| ret void |
| } |
| |
| attributes #0 = { "hlsl.wavesize"="16,0,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" } |
| |
| ;--- min.ll |
| |
| ; CHECK: !dx.entryPoints = !{![[#ENTRY:]]} |
| ; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]} |
| ; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}} |
| ; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 0, i32 0} |
| |
| ; OBJ: - Name: PSV0 |
| ; OBJ: PSVInfo: |
| ; OBJ: MinimumWaveLaneCount: 16 |
| ; OBJ: MaximumWaveLaneCount: 16 |
| |
| target triple = "dxil-unknown-shadermodel6.8-compute" |
| |
| define void @main() #0 { |
| entry: |
| ret void |
| } |
| |
| attributes #0 = { "hlsl.wavesize"="16,0,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" } |
| |
| ;--- max.ll |
| |
| ; CHECK: !dx.entryPoints = !{![[#ENTRY:]]} |
| ; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]} |
| ; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}} |
| ; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 32, i32 0} |
| |
| ; OBJ: - Name: PSV0 |
| ; OBJ: PSVInfo: |
| ; OBJ: MinimumWaveLaneCount: 16 |
| ; OBJ: MaximumWaveLaneCount: 32 |
| |
| target triple = "dxil-unknown-shadermodel6.8-compute" |
| |
| define void @main() #0 { |
| entry: |
| ret void |
| } |
| |
| attributes #0 = { "hlsl.wavesize"="16,32,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" } |
| |
| ;--- pref.ll |
| |
| ; CHECK: !dx.entryPoints = !{![[#ENTRY:]]} |
| ; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]} |
| ; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}} |
| ; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 64, i32 32} |
| |
| ; OBJ: - Name: PSV0 |
| ; OBJ: PSVInfo: |
| ; OBJ: MinimumWaveLaneCount: 16 |
| ; OBJ: MaximumWaveLaneCount: 64 |
| |
| target triple = "dxil-unknown-shadermodel6.8-compute" |
| |
| define void @main() #0 { |
| entry: |
| ret void |
| } |
| |
| attributes #0 = { "hlsl.wavesize"="16,64,32" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" } |