brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 8072f6d Raw
33 lines · plain
1// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple   \2// RUN:   spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \3// RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV4// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple   \5// RUN:   dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \6// RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-DXIL7 8[numthreads(1, 1, 1)]9void main() {10  uint a, b;11// CHECK-SPIRV: %[[#entry_tok:]] = call token @llvm.experimental.convergence.entry()12 13// CHECK-SPIRV: %[[#loop_tok:]] = call token @llvm.experimental.convergence.loop() [ "convergencectrl"(token %[[#entry_tok]]) ]14  while (a) {15 16// CHECK-DXIL:  %[[#]] = call i32 @llvm.dx.wave.get.lane.count()17// CHECK-SPIRV: %[[#]] = call spir_func i32 @llvm.spv.wave.get.lane.count()18// CHECK-SPIRV-SAME: [ "convergencectrl"(token %[[#loop_tok]]) ]19    a = WaveGetLaneCount();20  }21 22// CHECK-DXIL:  %[[#]] = call i32 @llvm.dx.wave.get.lane.count()23// CHECK-SPIRV: %[[#]] = call spir_func i32 @llvm.spv.wave.get.lane.count()24// CHECK-SPIRV-SAME: [ "convergencectrl"(token %[[#entry_tok]]) ]25  b = WaveGetLaneCount();26}27 28// CHECK-DXIL:  i32 @llvm.dx.wave.get.lane.count() #[[#attr:]]29// CHECK-SPIRV: i32 @llvm.spv.wave.get.lane.count() #[[#attr:]]30 31// CHECK: attributes #[[#attr]] = {{{.*}} convergent {{.*}}}32 33