[compiler-rt][Hexagon] Remove fma/fmin/max code

This code should reside in the c-library.

Differential Revision: https://reviews.llvm.org/D82263
This commit is contained in:
Sid Manning 2020-06-19 17:37:44 -05:00
parent 04027052a7
commit baca8f977e
6 changed files with 3 additions and 133 deletions

View File

@ -505,13 +505,9 @@ set(hexagon_SOURCES
hexagon/dfsqrt.S hexagon/dfsqrt.S
hexagon/divdi3.S hexagon/divdi3.S
hexagon/divsi3.S hexagon/divsi3.S
hexagon/fabs_opt.S
hexagon/fastmath2_dlib_asm.S hexagon/fastmath2_dlib_asm.S
hexagon/fastmath2_ldlib_asm.S hexagon/fastmath2_ldlib_asm.S
hexagon/fastmath_dlib_asm.S hexagon/fastmath_dlib_asm.S
hexagon/fma_opt.S
hexagon/fmax_opt.S
hexagon/fmin_opt.S
hexagon/memcpy_forward_vp4cp4n2.S hexagon/memcpy_forward_vp4cp4n2.S
hexagon/memcpy_likely_aligned.S hexagon/memcpy_likely_aligned.S
hexagon/moddi3.S hexagon/moddi3.S

View File

@ -104,13 +104,11 @@
.type __hexagon_fmadf4,@function .type __hexagon_fmadf4,@function
.global __hexagon_fmadf5 .global __hexagon_fmadf5
.type __hexagon_fmadf5,@function .type __hexagon_fmadf5,@function
.global fma
.type fma,@function
Q6_ALIAS(fmadf5) Q6_ALIAS(fmadf5)
.p2align 5 .p2align 5
__hexagon_fmadf4: __hexagon_fmadf4:
__hexagon_fmadf5: __hexagon_fmadf5:
fma: .Lfma_begin:
{ {
P_TMP = dfclass(A,#2) P_TMP = dfclass(A,#2)
P_TMP = dfclass(B,#2) P_TMP = dfclass(B,#2)
@ -561,7 +559,7 @@ fma:
B = insert(BTMP,#63,#0) B = insert(BTMP,#63,#0)
AH -= asl(TMP,#HI_MANTBITS) AH -= asl(TMP,#HI_MANTBITS)
} }
jump fma jump .Lfma_begin
.Lfma_ab_tiny: .Lfma_ab_tiny:
ATMP = combine(##0x00100000,#0) ATMP = combine(##0x00100000,#0)
@ -569,7 +567,7 @@ fma:
A = insert(ATMP,#63,#0) A = insert(ATMP,#63,#0)
B = insert(ATMP,#63,#0) B = insert(ATMP,#63,#0)
} }
jump fma jump .Lfma_begin
.Lab_inf: .Lab_inf:
{ {

View File

@ -1,36 +0,0 @@
//===----------------------Hexagon builtin routine ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
.macro FUNCTION_BEGIN name
.text
.p2align 5
.globl \name
.type \name, @function
\name:
.endm
.macro FUNCTION_END name
.size \name, . - \name
.endm
FUNCTION_BEGIN fabs
{
r1 = clrbit(r1, #31)
jumpr r31
}
FUNCTION_END fabs
FUNCTION_BEGIN fabsf
{
r0 = clrbit(r0, #31)
jumpr r31
}
FUNCTION_END fabsf
.globl fabsl
.set fabsl, fabs

View File

@ -1,30 +0,0 @@
//===----------------------Hexagon builtin routine ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
.macro FUNCTION_BEGIN name
.text
.p2align 5
.globl \name
.type \name, @function
\name:
.endm
.macro FUNCTION_END name
.size \name, . - \name
.endm
FUNCTION_BEGIN fmaf
r2 += sfmpy(r0, r1)
{
r0 = r2
jumpr r31
}
FUNCTION_END fmaf
.globl fmal
.set fmal, fma

View File

@ -1,29 +0,0 @@
//===----------------------Hexagon builtin routine ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
.macro FUNCTION_BEGIN name
.text
.p2align 5
.globl \name
.type \name, @function
\name:
.endm
.macro FUNCTION_END name
.size \name, . - \name
.endm
FUNCTION_BEGIN fmaxf
{
r0 = sfmax(r0, r1)
jumpr r31
}
FUNCTION_END fmaxf
.globl fmaxl
.set fmaxl, fmax

View File

@ -1,29 +0,0 @@
//===----------------------Hexagon builtin routine ------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
.macro FUNCTION_BEGIN name
.text
.p2align 5
.globl \name
.type \name, @function
\name:
.endm
.macro FUNCTION_END name
.size \name, . - \name
.endm
FUNCTION_BEGIN fminf
{
r0 = sfmin(r0, r1)
jumpr r31
}
FUNCTION_END fminf
.globl fminl
.set fminl, fmin