97 lines · plain
1; RUN: split-file %s %t2; RUN: opt -S --dxil-translate-metadata %t/only.ll | FileCheck %t/only.ll3; RUN: opt -S --dxil-translate-metadata %t/min.ll | FileCheck %t/min.ll4; RUN: opt -S --dxil-translate-metadata %t/max.ll | FileCheck %t/max.ll5; RUN: opt -S --dxil-translate-metadata %t/pref.ll | FileCheck %t/pref.ll6 7; RUN: llc --filetype=obj %t/only.ll -o - | obj2yaml | FileCheck %t/only.ll --check-prefix=OBJ8; RUN: llc --filetype=obj %t/min.ll -o - | obj2yaml | FileCheck %t/min.ll --check-prefix=OBJ9; RUN: llc --filetype=obj %t/max.ll -o - | obj2yaml | FileCheck %t/max.ll --check-prefix=OBJ10; RUN: llc --filetype=obj %t/pref.ll -o - | obj2yaml | FileCheck %t/pref.ll --check-prefix=OBJ11 12; Test that wave size/range metadata is correctly generated with the correct tag13 14;--- only.ll15 16; CHECK: !dx.entryPoints = !{![[#ENTRY:]]}17; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]}18; CHECK: ![[#PROPS]] = !{{{.*}}i32 11, ![[#WAVE_SIZE:]]{{.*}}}19; CHECK: ![[#WAVE_SIZE]] = !{i32 16}20 21; OBJ: - Name: PSV022; OBJ: PSVInfo:23; OBJ: MinimumWaveLaneCount: 1624; OBJ: MaximumWaveLaneCount: 1625 26target triple = "dxil-unknown-shadermodel6.6-compute"27 28define void @main() #0 {29entry:30 ret void31}32 33attributes #0 = { "hlsl.wavesize"="16,0,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }34 35;--- min.ll36 37; CHECK: !dx.entryPoints = !{![[#ENTRY:]]}38; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]}39; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}}40; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 0, i32 0}41 42; OBJ: - Name: PSV043; OBJ: PSVInfo:44; OBJ: MinimumWaveLaneCount: 1645; OBJ: MaximumWaveLaneCount: 1646 47target triple = "dxil-unknown-shadermodel6.8-compute"48 49define void @main() #0 {50entry:51 ret void52}53 54attributes #0 = { "hlsl.wavesize"="16,0,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }55 56;--- max.ll57 58; CHECK: !dx.entryPoints = !{![[#ENTRY:]]}59; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]}60; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}}61; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 32, i32 0}62 63; OBJ: - Name: PSV064; OBJ: PSVInfo:65; OBJ: MinimumWaveLaneCount: 1666; OBJ: MaximumWaveLaneCount: 3267 68target triple = "dxil-unknown-shadermodel6.8-compute"69 70define void @main() #0 {71entry:72 ret void73}74 75attributes #0 = { "hlsl.wavesize"="16,32,0" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }76 77;--- pref.ll78 79; CHECK: !dx.entryPoints = !{![[#ENTRY:]]}80; CHECK: ![[#ENTRY]] = !{ptr @main, !"main", null, null, ![[#PROPS:]]}81; CHECK: ![[#PROPS]] = !{{{.*}}i32 23, ![[#WAVE_SIZE:]]{{.*}}}82; CHECK: ![[#WAVE_SIZE]] = !{i32 16, i32 64, i32 32}83 84; OBJ: - Name: PSV085; OBJ: PSVInfo:86; OBJ: MinimumWaveLaneCount: 1687; OBJ: MaximumWaveLaneCount: 6488 89target triple = "dxil-unknown-shadermodel6.8-compute"90 91define void @main() #0 {92entry:93 ret void94}95 96attributes #0 = { "hlsl.wavesize"="16,64,32" "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }97