Skip to content

Commit cb7c56c

Browse files
committed
[AIE2P][unittest] add unittest for Vextr G_ASSERT_[S/Z]EXT BCST
1 parent 95f7e91 commit cb7c56c

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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 -mtriple aie2p -run-pass=aie2p-postlegalizer-custom-combiner -verify-machineinstrs -o - %s | FileCheck %s
10+
11+
12+
---
13+
name: extr_assert_sext_bcst
14+
alignment: 1
15+
legalized: true
16+
body: |
17+
bb.0:
18+
liveins: $wl0, $wl1
19+
20+
; CHECK-LABEL: name: extr_assert_sext_bcst
21+
; CHECK: liveins: $wl0, $wl1
22+
; CHECK-NEXT: {{ $}}
23+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s16>) = COPY $wl0
24+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
25+
; CHECK-NEXT: [[AIE_PAD_VECTOR_UNDEF:%[0-9]+]]:_(<32 x s16>) = G_AIE_PAD_VECTOR_UNDEF [[COPY]](<16 x s16>)
26+
; CHECK-NEXT: [[AIE_SEXT_EXTRACT_VECTOR_ELT:%[0-9]+]]:_(s32) = G_AIE_SEXT_EXTRACT_VECTOR_ELT [[AIE_PAD_VECTOR_UNDEF]](<32 x s16>), [[C]](s32)
27+
; CHECK-NEXT: [[ASSERT_SEXT:%[0-9]+]]:_(s32) = G_ASSERT_SEXT [[AIE_SEXT_EXTRACT_VECTOR_ELT]], 16
28+
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[ASSERT_SEXT]](s32)
29+
; CHECK-NEXT: [[AIE_UNPAD_VECTOR:%[0-9]+]]:_(<16 x s16>) = G_AIE_UNPAD_VECTOR [[AIE_BROADCAST_VECTOR]](<32 x s16>)
30+
; CHECK-NEXT: PseudoRET implicit $lr, implicit [[AIE_UNPAD_VECTOR]](<16 x s16>)
31+
%0:_(<16 x s16>) = COPY $wl0
32+
%3:_(s32) = G_CONSTANT i32 2
33+
%10:_(<32 x s16>) = G_AIE_PAD_VECTOR_UNDEF %0(<16 x s16>)
34+
%8:_(s32) = G_AIE_SEXT_EXTRACT_VECTOR_ELT %10(<32 x s16>), %3(s32)
35+
%5:_(s32) = G_ASSERT_SEXT %8, 16
36+
%6:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR %5(s32)
37+
%2:_(<16 x s16>) = G_AIE_UNPAD_VECTOR %6(<32 x s16>)
38+
PseudoRET implicit $lr, implicit %2(<16 x s16>)
39+
40+
...
41+
42+
---
43+
name: extr_assert_zext_bcst
44+
alignment: 1
45+
legalized: true
46+
body: |
47+
bb.0:
48+
liveins: $wl0, $wl1
49+
50+
; CHECK-LABEL: name: extr_assert_zext_bcst
51+
; CHECK: liveins: $wl0, $wl1
52+
; CHECK-NEXT: {{ $}}
53+
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s16>) = COPY $wl0
54+
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2
55+
; CHECK-NEXT: [[AIE_PAD_VECTOR_UNDEF:%[0-9]+]]:_(<32 x s16>) = G_AIE_PAD_VECTOR_UNDEF [[COPY]](<16 x s16>)
56+
; CHECK-NEXT: [[AIE_ZEXT_EXTRACT_VECTOR_ELT:%[0-9]+]]:_(s32) = G_AIE_ZEXT_EXTRACT_VECTOR_ELT [[AIE_PAD_VECTOR_UNDEF]](<32 x s16>), [[C]](s32)
57+
; CHECK-NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[AIE_ZEXT_EXTRACT_VECTOR_ELT]], 16
58+
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[ASSERT_ZEXT]](s32)
59+
; CHECK-NEXT: [[AIE_UNPAD_VECTOR:%[0-9]+]]:_(<16 x s16>) = G_AIE_UNPAD_VECTOR [[AIE_BROADCAST_VECTOR]](<32 x s16>)
60+
; CHECK-NEXT: PseudoRET implicit $lr, implicit [[AIE_UNPAD_VECTOR]](<16 x s16>)
61+
%0:_(<16 x s16>) = COPY $wl0
62+
%3:_(s32) = G_CONSTANT i32 2
63+
%10:_(<32 x s16>) = G_AIE_PAD_VECTOR_UNDEF %0(<16 x s16>)
64+
%8:_(s32) = G_AIE_ZEXT_EXTRACT_VECTOR_ELT %10(<32 x s16>), %3(s32)
65+
%5:_(s32) = G_ASSERT_ZEXT %8, 16
66+
%6:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR %5(s32)
67+
%2:_(<16 x s16>) = G_AIE_UNPAD_VECTOR %6(<32 x s16>)
68+
PseudoRET implicit $lr, implicit %2(<16 x s16>)
69+
70+
...

0 commit comments

Comments
 (0)