The instruction is used to modify wave priority with the intent to affect VALU execution and currently we can reschedule VALU around it since that VALU does not have side effects. Differential Revision: https://reviews.llvm.org/D130654
21 lines
902 B
LLVM
21 lines
902 B
LLVM
; RUN: llc -march=amdgcn -mcpu=gfx908 -verify-machineinstrs < %s | FileCheck --check-prefix=GCN %s
|
|
|
|
declare void @llvm.amdgcn.s.setprio(i16)
|
|
declare <4 x float> @llvm.amdgcn.mfma.f32.4x4x1f32(float, float, <4 x float>, i32, i32, i32)
|
|
|
|
; GCN-LABEL: {{^}}test_mfma_f32_4x4x1f32:
|
|
; GCN: s_setprio 1
|
|
; GCN: v_mfma
|
|
; GCN: v_mfma
|
|
; GCN: s_setprio 0
|
|
define amdgpu_kernel void @test_mfma_f32_4x4x1f32(<4 x float> addrspace(1)* %arg) #0 {
|
|
bb:
|
|
%in.1 = load <4 x float>, <4 x float> addrspace(1)* %arg
|
|
call void @llvm.amdgcn.s.setprio(i16 1)
|
|
%mai.1 = tail call <4 x float> @llvm.amdgcn.mfma.f32.4x4x1f32(float 1.0, float 2.0, <4 x float> %in.1, i32 0, i32 0, i32 0)
|
|
%mai.2 = tail call <4 x float> @llvm.amdgcn.mfma.f32.4x4x1f32(float 3.0, float 4.0, <4 x float> %mai.1, i32 0, i32 0, i32 0)
|
|
call void @llvm.amdgcn.s.setprio(i16 0)
|
|
store <4 x float> %mai.2, <4 x float> addrspace(1)* %arg
|
|
ret void
|
|
}
|