Skip to content

Commit 24fbcd9

Browse files
[AIE2P] Add a base lit test with unallocated 2D/3D regs before main Greedy run
Co-Authored-By: Krishnam Tibrewala <[email protected]>
1 parent 774e6ea commit 24fbcd9

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2+
#
3+
# This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4+
# See https://llvm.org/LICENSE.txt for license information.
5+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
#
7+
# (c) Copyright 2025 Advanced Micro Devices, Inc. or its affiliates
8+
9+
# RUN: llc -O2 -mtriple=aie2p -verify-machineinstrs -start-before=greedy \
10+
# RUN: -stop-before=virtregrewriter %s -o - | FileCheck %s
11+
12+
# This test exposes some rewriting opportunities. Please note
13+
# that the registers directly used by the 3d instruction should not touched
14+
# because they already have physical registers assigned (are allocated).
15+
16+
---
17+
name: rewrite_unallocated
18+
alignment: 16
19+
tracksRegLiveness: true
20+
body: |
21+
; CHECK-LABEL: name: rewrite_unallocated
22+
; CHECK: bb.0:
23+
; CHECK-NEXT: successors: %bb.1(0x80000000)
24+
; CHECK-NEXT: {{ $}}
25+
; CHECK-NEXT: [[MOV_RLC_imm11_pseudo:%[0-9]+]]:erf2 = MOV_RLC_imm11_pseudo 0
26+
; CHECK-NEXT: undef [[VBCST_32_:%[0-9]+]].sub_512_lo:vec1024 = VBCST_32 [[MOV_RLC_imm11_pseudo]]
27+
; CHECK-NEXT: [[MOV_PD_imm11_pseudo:%[0-9]+]]:em_as_32bit = MOV_PD_imm11_pseudo 0
28+
; CHECK-NEXT: [[COPY:%[0-9]+]]:edjl = COPY [[MOV_PD_imm11_pseudo]]
29+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:ednl = COPY [[MOV_PD_imm11_pseudo]]
30+
; CHECK-NEXT: [[COPY2:%[0-9]+]]:edcl = COPY [[MOV_PD_imm11_pseudo]]
31+
; CHECK-NEXT: [[COPY3:%[0-9]+]]:ednh = COPY [[MOV_PD_imm11_pseudo]]
32+
; CHECK-NEXT: [[COPY4:%[0-9]+]]:edch = COPY [[MOV_PD_imm11_pseudo]]
33+
; CHECK-NEXT: [[COPY5:%[0-9]+]]:edjh = COPY [[COPY]]
34+
; CHECK-NEXT: [[VBCST_32_:%[0-9]+]].sub_512_hi:vec1024 = COPY [[VBCST_32_]].sub_512_lo
35+
; CHECK-NEXT: [[COPY6:%[0-9]+]]:eldfiforeg = COPY [[VBCST_32_]]
36+
; CHECK-NEXT: [[MOV_PD_imm11_pseudo1:%[0-9]+]]:eps = MOV_PD_imm11_pseudo 0
37+
; CHECK-NEXT: {{ $}}
38+
; CHECK-NEXT: bb.1:
39+
; CHECK-NEXT: successors: %bb.1(0x80000000)
40+
; CHECK-NEXT: {{ $}}
41+
; CHECK-NEXT: [[COPY7:%[0-9]+]]:edcl = COPY [[COPY2]]
42+
; CHECK-NEXT: [[COPY8:%[0-9]+]]:ednl = COPY [[COPY1]]
43+
; CHECK-NEXT: [[COPY9:%[0-9]+]]:edjl = COPY [[COPY]]
44+
; CHECK-NEXT: [[COPY10:%[0-9]+]]:em_as_32bit = COPY [[MOV_PD_imm11_pseudo]]
45+
; CHECK-NEXT: [[COPY11:%[0-9]+]]:edch = COPY [[COPY4]]
46+
; CHECK-NEXT: [[COPY12:%[0-9]+]]:ednh = COPY [[COPY3]]
47+
; CHECK-NEXT: [[COPY13:%[0-9]+]]:edjh = COPY [[COPY5]]
48+
; CHECK-NEXT: undef [[COPY14:%[0-9]+]].sub_ptr:epsrfldf = COPY [[MOV_PD_imm11_pseudo1]]
49+
; CHECK-NEXT: [[COPY14:%[0-9]+]].sub_fifo:epsrfldf = COPY [[COPY6]]
50+
; CHECK-NEXT: [[COPY14:%[0-9]+]].sub_avail:epsrfldf = COPY [[MOV_RLC_imm11_pseudo]]
51+
; CHECK-NEXT: dead [[VLD_POP_576_3D_pseudo_split:%[0-9]+]]:vec576, dead [[COPY14:%[0-9]+]].sub_ptr:epsrfldf, dead [[COPY14:%[0-9]+]].sub_fifo:epsrfldf, dead [[COPY14:%[0-9]+]].sub_avail:epsrfldf, dead [[COPY7:%[0-9]+]]:edcl, dead [[COPY11:%[0-9]+]]:edch = VLD_POP_576_3D_pseudo_split [[COPY14]].sub_ptr, [[COPY14]].sub_fifo, [[COPY14]].sub_avail, [[COPY10]], [[COPY8]], [[COPY9]], [[COPY7]], undef %23:em_as_32bit, [[COPY12]], [[COPY13]], [[COPY11]], implicit-def $srfifo_uf :: (load unknown-size from `ptr addrspace(5) null`, align 1, addrspace 5)
52+
; CHECK-NEXT: PseudoJ_jump_imm %bb.1
53+
bb.0:
54+
successors: %bb.1(0x80000000)
55+
56+
%9:erf2 = MOV_RLC_imm11_pseudo 0
57+
undef %8.sub_512_lo:vec1024 = VBCST_32 %9
58+
undef %14.sub_mod:eds = MOV_PD_imm11_pseudo 0
59+
%14.sub_dim_stride:eds = COPY %14.sub_mod
60+
%14.sub_dim_size:eds = COPY %14.sub_mod
61+
%14.sub_dim_count:eds = COPY %14.sub_mod
62+
%14.sub_hi_dim_then_sub_dim_size:eds = COPY %14.sub_mod
63+
%14.sub_hi_dim_then_sub_dim_count:eds = COPY %14.sub_mod
64+
%14.sub_hi_dim_then_sub_dim_stride:eds = COPY %14.sub_dim_stride
65+
%8.sub_512_hi:vec1024 = COPY %8.sub_512_lo
66+
%12:eldfiforeg = COPY %8
67+
%7:eps = MOV_PD_imm11_pseudo 0
68+
69+
bb.1:
70+
successors: %bb.1(0x80000000)
71+
72+
%23:eds = COPY %14
73+
undef %22.sub_ptr:epsrfldf = COPY %7
74+
%22.sub_fifo:epsrfldf = COPY %12
75+
%22.sub_avail:epsrfldf = COPY %9
76+
dead %13:vec576, dead %22.sub_ptr:epsrfldf, dead %22.sub_fifo:epsrfldf, dead %22.sub_avail:epsrfldf, dead %23.sub_dim_count:eds, dead %23.sub_hi_dim_then_sub_dim_count:eds = VLD_POP_576_3D_pseudo_split %22.sub_ptr, %22.sub_fifo, %22.sub_avail, %23.sub_mod, %23.sub_dim_size, %23.sub_dim_stride, %23.sub_dim_count, undef %23.sub_hi_dim_then_sub_mod, %23.sub_hi_dim_then_sub_dim_size, %23.sub_hi_dim_then_sub_dim_stride, %23.sub_hi_dim_then_sub_dim_count, implicit-def $srfifo_uf :: (load unknown-size from `ptr addrspace(5) null`, align 1, addrspace 5)
77+
PseudoJ_jump_imm %bb.1
78+
79+
...

0 commit comments

Comments
 (0)