blob: cde610839c2915f14e55ed0ba2409f685aeeb9bc [file]
; RUN: opt -S -scalarizer -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-compute %s | FileCheck %s
; Test WaveReadLaneFirst scalarization for matrix values.
define noundef <6 x float> @wave_readlane_first_float2x3(
<6 x float> noundef %expr) {
entry:
; CHECK-LABEL: define noundef <6 x float> @wave_readlane_first_float2x3(
; CHECK-COUNT-6: call float @dx.op.waveReadLaneFirst.f32(i32 118,
%ret = call <6 x float> @llvm.dx.wave.readlane.first.v6f32(
<6 x float> %expr)
ret <6 x float> %ret
}
define noundef <12 x float> @wave_readlane_first_float3x4(
<12 x float> noundef %expr) {
entry:
; CHECK-LABEL: define noundef <12 x float> @wave_readlane_first_float3x4(
; CHECK-COUNT-12: call float @dx.op.waveReadLaneFirst.f32(i32 118,
%ret = call <12 x float> @llvm.dx.wave.readlane.first.v12f32(
<12 x float> %expr)
ret <12 x float> %ret
}
declare <6 x float> @llvm.dx.wave.readlane.first.v6f32(<6 x float>)
declare <12 x float> @llvm.dx.wave.readlane.first.v12f32(<12 x float>)