summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/MSP430/hwmultf5.ll
diff options
context:
space:
mode:
authorVadzim Dambrouski <pftbest@gmail.com>2017-05-11 19:56:14 +0000
committerVadzim Dambrouski <pftbest@gmail.com>2017-05-11 19:56:14 +0000
commit38e30197c31951a6f27f781060395161313fd614 (patch)
tree30abea07b9e8fc46e034e76fb51007fb6886fe2a /llvm/test/CodeGen/MSP430/hwmultf5.ll
parent36acbc716d7da51dc7f1306a172eb7f512a394ae (diff)
downloadbcm5719-llvm-38e30197c31951a6f27f781060395161313fd614.tar.gz
bcm5719-llvm-38e30197c31951a6f27f781060395161313fd614.zip
[MSP430] Generate EABI-compliant libcalls
Updates the MSP430 target to generate EABI-compatible libcall names. As a byproduct, adjusts the hardware multiplier options available in the MSP430 target, adds support for promotion of the ISD::MUL operation for 8-bit integers, and correctly marks R11 as used by call instructions. Patch by Andrew Wygle. Differential Revision: https://reviews.llvm.org/D32676 llvm-svn: 302820
Diffstat (limited to 'llvm/test/CodeGen/MSP430/hwmultf5.ll')
-rw-r--r--llvm/test/CodeGen/MSP430/hwmultf5.ll43
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MSP430/hwmultf5.ll b/llvm/test/CodeGen/MSP430/hwmultf5.ll
new file mode 100644
index 00000000000..51ca4be4a65
--- /dev/null
+++ b/llvm/test/CodeGen/MSP430/hwmultf5.ll
@@ -0,0 +1,43 @@
+; RUN: llc -O0 -mhwmult=f5series < %s | FileCheck %s
+
+target datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16-a0:16:16"
+target triple = "msp430---elf"
+
+@g_i32 = global i32 123, align 8
+@g_i64 = global i64 456, align 8
+@g_i16 = global i16 789, align 8
+
+define i16 @mpyi() #0 {
+entry:
+; CHECK: mpyi:
+
+; CHECK: call #__mspabi_mpyi_f5hw
+ %0 = load volatile i16, i16* @g_i16, align 8
+ %1 = mul i16 %0, %0
+
+ ret i16 %1
+}
+
+define i32 @mpyli() #0 {
+entry:
+; CHECK: mpyli:
+
+; CHECK: call #__mspabi_mpyl_f5hw
+ %0 = load volatile i32, i32* @g_i32, align 8
+ %1 = mul i32 %0, %0
+
+ ret i32 %1
+}
+
+define i64 @mpylli() #0 {
+entry:
+; CHECK: mpylli:
+
+; CHECK: call #__mspabi_mpyll_f5hw
+ %0 = load volatile i64, i64* @g_i64, align 8
+ %1 = mul i64 %0, %0
+
+ ret i64 %1
+}
+
+attributes #0 = { nounwind }
OpenPOWER on IntegriCloud