[llvm] [MSP430] Use `softPromoteHalfType` (PR #175139)
Trevor Gross via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 9 01:18:24 PST 2026
https://github.com/tgross35 created https://github.com/llvm/llvm-project/pull/175139
Follow suite from other targets.
Fixes the MSP430 portion of https://github.com/llvm/llvm-project/issues/97975 Fixes the MSP430 portion of https://github.com/llvm/llvm-project/issues/97981
>From 2a6af02b13f44ae0a68b6529bda8ad8e5bc7fb22 Mon Sep 17 00:00:00 2001
From: Trevor Gross <tg at trevorgross.com>
Date: Thu, 8 Jan 2026 23:06:32 -0600
Subject: [PATCH] [MSP430] Use `softPromoteHalfType`
Follow suite from other targets.
Fixes the MSP430 portion of https://github.com/llvm/llvm-project/issues/97975
Fixes the MSP430 portion of https://github.com/llvm/llvm-project/issues/97981
---
llvm/lib/Target/MSP430/MSP430ISelLowering.h | 2 ++
llvm/test/CodeGen/Generic/half-op.ll | 2 +-
llvm/test/CodeGen/MSP430/llvm.sincos.ll | 35 ++++++++++-----------
3 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/llvm/lib/Target/MSP430/MSP430ISelLowering.h b/llvm/lib/Target/MSP430/MSP430ISelLowering.h
index 011b10b2071d3..4aa0377e9230c 100644
--- a/llvm/lib/Target/MSP430/MSP430ISelLowering.h
+++ b/llvm/lib/Target/MSP430/MSP430ISelLowering.h
@@ -129,6 +129,8 @@ namespace llvm {
SDValue &Offset,
ISD::MemIndexedMode &AM,
SelectionDAG &DAG) const override;
+
+ bool softPromoteHalfType() const override { return true; }
};
} // namespace llvm
diff --git a/llvm/test/CodeGen/Generic/half-op.ll b/llvm/test/CodeGen/Generic/half-op.ll
index f08c71b187eb1..d59ad6d0bf3bf 100644
--- a/llvm/test/CodeGen/Generic/half-op.ll
+++ b/llvm/test/CodeGen/Generic/half-op.ll
@@ -25,7 +25,7 @@
; RUN: %if mips-registered-target %{ llc %s -o - -mtriple=mips64-unknown-linux-gnuabi64 | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
; RUN: %if mips-registered-target %{ llc %s -o - -mtriple=mips64el-unknown-linux-gnuabi64 | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
; RUN: %if mips-registered-target %{ llc %s -o - -mtriple=mipsel-unknown-linux-gnu | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
-; RUN: %if msp430-registered-target %{ llc %s -o - -mtriple=msp430-none-elf | FileCheck %s --check-prefixes=ALL,BAD-NEG-ABS,BAD-COPYSIGN,BAD-FMA %}
+; RUN: %if msp430-registered-target %{ llc %s -o - -mtriple=msp430-none-elf | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
; RUN: %if nvptx-registered-target %{ llc %s -o - -mtriple=nvptx64-nvidia-cuda | FileCheck %s --check-prefixes=NOCRASH %}
; RUN: %if powerpc-registered-target %{ llc %s -o - -mtriple=powerpc-unknown-linux-gnu | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
; RUN: %if powerpc-registered-target %{ llc %s -o - -mtriple=powerpc64-unknown-linux-gnu | FileCheck %s --check-prefixes=ALL,CHECK-NEG-ABS,CHECK-COPYSIGN,CHECK-FMA %}
diff --git a/llvm/test/CodeGen/MSP430/llvm.sincos.ll b/llvm/test/CodeGen/MSP430/llvm.sincos.ll
index 159427c5027e0..c28c10d24ea6d 100644
--- a/llvm/test/CodeGen/MSP430/llvm.sincos.ll
+++ b/llvm/test/CodeGen/MSP430/llvm.sincos.ll
@@ -17,7 +17,7 @@ define { half, half } @test_sincos_f16(half %a) #0 {
; CHECK-NEXT: mov r9, r13
; CHECK-NEXT: call #cosf
; CHECK-NEXT: call #__truncsfhf2
-; CHECK-NEXT: mov r12, r14
+; CHECK-NEXT: mov r12, r13
; CHECK-NEXT: mov r8, r12
; CHECK-NEXT: pop r10
; CHECK-NEXT: pop r9
@@ -60,34 +60,33 @@ define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) #0 {
; CHECK-NEXT: push r8
; CHECK-NEXT: push r9
; CHECK-NEXT: push r10
-; CHECK-NEXT: mov r12, r7
-; CHECK-NEXT: mov r13, r12
+; CHECK-NEXT: mov r13, r7
; CHECK-NEXT: call #__extendhfsf2
-; CHECK-NEXT: mov r12, r10
-; CHECK-NEXT: mov r13, r9
+; CHECK-NEXT: mov r12, r9
+; CHECK-NEXT: mov r13, r8
; CHECK-NEXT: call #sinf
; CHECK-NEXT: call #__truncsfhf2
-; CHECK-NEXT: mov r12, r8
+; CHECK-NEXT: mov r12, r10
; CHECK-NEXT: mov r7, r12
; CHECK-NEXT: call #__extendhfsf2
-; CHECK-NEXT: mov r12, r6
-; CHECK-NEXT: mov r13, r5
-; CHECK-NEXT: call #cosf
-; CHECK-NEXT: call #__truncsfhf2
; CHECK-NEXT: mov r12, r7
-; CHECK-NEXT: mov r6, r12
-; CHECK-NEXT: mov r5, r13
+; CHECK-NEXT: mov r13, r6
; CHECK-NEXT: call #sinf
; CHECK-NEXT: call #__truncsfhf2
-; CHECK-NEXT: mov r12, r6
-; CHECK-NEXT: mov r10, r12
-; CHECK-NEXT: mov r9, r13
+; CHECK-NEXT: mov r12, r5
+; CHECK-NEXT: mov r9, r12
+; CHECK-NEXT: mov r8, r13
+; CHECK-NEXT: call #cosf
+; CHECK-NEXT: call #__truncsfhf2
+; CHECK-NEXT: mov r12, r9
+; CHECK-NEXT: mov r7, r12
+; CHECK-NEXT: mov r6, r13
; CHECK-NEXT: call #cosf
; CHECK-NEXT: call #__truncsfhf2
; CHECK-NEXT: mov r12, r15
-; CHECK-NEXT: mov r6, r12
-; CHECK-NEXT: mov r8, r13
-; CHECK-NEXT: mov r7, r14
+; CHECK-NEXT: mov r10, r12
+; CHECK-NEXT: mov r5, r13
+; CHECK-NEXT: mov r9, r14
; CHECK-NEXT: pop r10
; CHECK-NEXT: pop r9
; CHECK-NEXT: pop r8
More information about the llvm-commits
mailing list