================ @@ -0,0 +1,28 @@ +; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32v1.3-vulkan-unknown %s -o - | FileCheck %s +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-vulkan-unknown %s -o - -filetype=obj | spirv-val %} + +; Test lowering to spir-v backend + +; CHECK-DAG: %[[#uint:]] = OpTypeInt 32 0 +; CHECK-DAG: %[[#scope:]] = OpConstant %[[#uint]] 3 +; CHECK-DAG: %[[#f32:]] = OpTypeFloat 32 +; CHECK-DAG: %[[#expr:]] = OpFunctionParameter %[[#f32]] +; CHECK-DAG: %[[#idx:]] = OpFunctionParameter %[[#uint]] + +define spir_func void @test_1(float %expr, i32 %idx) #0 { +entry: + %0 = call token @llvm.experimental.convergence.entry() +; CHECK: %[[#ret:]] = OpGroupNonUniformShuffle %[[#f32]] %[[#expr]] %[[#idx]] %[[#scope]] + %1 = call float @llvm.spv.wave.read.lane.at(float %expr, i32 %idx) [ "convergencectrl"(token %0) ] + ret void +} + +declare i32 @__hlsl_wave_get_lane_index() #1 ---------------- farzonl wrote:
I don't see this declare get used. I think it was a copy from a past test? You need to update the declare for `WaveReadLaneAt`. https://github.com/llvm/llvm-project/pull/111010 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits