Skip to content

Commit b927ace

Browse files
committed
[AIEX] do not insert G_ASSERT_[Z/S]EXT after AnyExt
1 parent 58db43e commit b927ace

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

llvm/lib/Target/AIE/AIELegalizerHelper.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,12 +1394,6 @@ bool AIELegalizerHelper::legalizeG_FMUL(LegalizerHelper &Helper,
13941394

13951395
SrcLHS = MIRBuilder.buildAnyExt(S32, SrcLHS).getReg(0);
13961396
SrcRHS = MIRBuilder.buildAnyExt(S32, SrcRHS).getReg(0);
1397-
SrcLHS = MIRBuilder
1398-
.buildAssertInstr(TargetOpcode::G_ASSERT_ZEXT, {S32}, SrcLHS, 16)
1399-
.getReg(0);
1400-
SrcRHS = MIRBuilder
1401-
.buildAssertInstr(TargetOpcode::G_ASSERT_ZEXT, {S32}, SrcRHS, 16)
1402-
.getReg(0);
14031397

14041398
const LLT BroadcastVecLLT = V32BF16;
14051399
const unsigned BroadcastOpc =
@@ -1416,7 +1410,7 @@ bool AIELegalizerHelper::legalizeG_FMUL(LegalizerHelper &Helper,
14161410

14171411
const Register IdxReg = MIRBuilder.buildConstant(S32, 0).getReg(0);
14181412
const unsigned ExtractEltOpc =
1419-
ST.getInstrInfo()->getGenericExtractVectorEltOpcode(/*ZeroExt*/ false);
1413+
ST.getInstrInfo()->getGenericExtractVectorEltOpcode(/*SignExt=*/false);
14201414
Res = MIRBuilder.buildInstr(ExtractEltOpc, {S32}, {Res, IdxReg}).getReg(0);
14211415
Res = MIRBuilder.buildAssertInstr(TargetOpcode::G_ASSERT_ZEXT, {S32}, Res, 16)
14221416
.getReg(0);

llvm/test/CodeGen/AIE/aie2p/GlobalIsel/legalize-fmul.mir

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# See https://llvm.org/LICENSE.txt for license information.
44
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55
#
6-
# (c) Copyright 2024 Advanced Micro Devices, Inc. or its affiliates
6+
# (c) Copyright 2024-2025 Advanced Micro Devices, Inc. or its affiliates
77

88
# RUN: llc -mtriple aie2p -run-pass=legalizer %s -verify-machineinstrs -o - | FileCheck %s
99

@@ -17,15 +17,13 @@ body: |
1717
; CHECK-NEXT: {{ $}}
1818
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $r1
1919
; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $r2
20-
; CHECK-NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY]], 16
21-
; CHECK-NEXT: [[ASSERT_ZEXT1:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[COPY1]], 16
22-
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[ASSERT_ZEXT]](s32)
23-
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR1:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[ASSERT_ZEXT1]](s32)
20+
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[COPY]](s32)
21+
; CHECK-NEXT: [[AIE_BROADCAST_VECTOR1:%[0-9]+]]:_(<32 x s16>) = G_AIE_BROADCAST_VECTOR [[COPY1]](s32)
2422
; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(<32 x s16>) = G_FMUL [[AIE_BROADCAST_VECTOR]], [[AIE_BROADCAST_VECTOR1]]
2523
; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
2624
; CHECK-NEXT: [[AIE_ZEXT_EXTRACT_VECTOR_ELT:%[0-9]+]]:_(s32) = G_AIE_ZEXT_EXTRACT_VECTOR_ELT [[FMUL]](<32 x s16>), [[C]](s32)
27-
; CHECK-NEXT: [[ASSERT_ZEXT2:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[AIE_ZEXT_EXTRACT_VECTOR_ELT]], 16
28-
; CHECK-NEXT: $r0 = COPY [[ASSERT_ZEXT2]](s32)
25+
; CHECK-NEXT: [[ASSERT_ZEXT:%[0-9]+]]:_(s32) = G_ASSERT_ZEXT [[AIE_ZEXT_EXTRACT_VECTOR_ELT]], 16
26+
; CHECK-NEXT: $r0 = COPY [[ASSERT_ZEXT]](s32)
2927
; CHECK-NEXT: PseudoRET implicit $lr, implicit $r0
3028
%0:_(s32) = COPY $r1
3129
%1:_(s16) = G_TRUNC %0(s32)

0 commit comments

Comments
 (0)