[AMDGPU] Mark AGPR tuple implicit in the first instr of AGPR spills. (#115285)
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / wmma_modifiers.ll
blob2efbd3277f209842b5654b17cd0ef074b9470646
1 ; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs < %s | FileCheck %s
3 declare <4 x float> @llvm.amdgcn.wmma.f32.16x16x16.f16.v4f32.v16f16(<16 x half>, <16 x half>, <4 x float>)
5 ; Make sure we don't crash when trying to select modifiers in SelectVOP3PMods.
7 define amdgpu_cs void @xyz () {
8 ; CHECK-LABEL: xyz:
9 ; CHECK: v_wmma_f32_16x16x16_f16 v[0:3], v[0:7], v[0:7], v[0:3]
11 .entry:
12   br label %loop
13 loop:
14   %ld = load <8 x float>, ptr addrspace(5) null, align 32
15   %in_shuffle = shufflevector <8 x float> %ld, <8 x float> undef, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
16   %wmma = call <4 x float> @llvm.amdgcn.wmma.f32.16x16x16.f16.v4f32.v16f16(<16 x half> undef, <16 x half> undef, <4 x float> %in_shuffle)
17   %out_shuffle = shufflevector <4 x float> %wmma, <4 x float> undef, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
18   store <8 x float> %out_shuffle, ptr addrspace(5) null, align 32
19   br i1 false, label %.exit, label %loop
20 .exit:
21   ret void