[compiler-rt] r302147 - [compiler-rt][mips] Add support for quad precision builtins for mips64

Simon Dardis via llvm-commits llvm-commits at lists.llvm.org
Thu May 4 06:34:17 PDT 2017


Author: sdardis
Date: Thu May  4 08:34:17 2017
New Revision: 302147

URL: http://llvm.org/viewvc/llvm-project?rev=302147&view=rev
Log:
[compiler-rt][mips] Add support for quad precision builtins for mips64

Match the builtins that GCC provides for IEEE754 quad precision
on MIPS64. Also, enable building them with clang as PR20098 is resolved.

Disable tests for xf and xc modes as MIPS doesn't support that mode in
hardware or software.

Reviewers: slthakur

Differential Revision: https://reviews.llvm.org/D32794


Modified:
    compiler-rt/trunk/lib/builtins/CMakeLists.txt
    compiler-rt/trunk/lib/builtins/int_types.h
    compiler-rt/trunk/test/builtins/Unit/divxc3_test.c
    compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c
    compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c
    compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c
    compiler-rt/trunk/test/builtins/Unit/floattixf_test.c
    compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c
    compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c

Modified: compiler-rt/trunk/lib/builtins/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/CMakeLists.txt?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/builtins/CMakeLists.txt Thu May  4 08:34:17 2017
@@ -167,6 +167,26 @@ set(GENERIC_SOURCES
   umodti3.c
   emutls.c)
 
+set(GENERIC_TF_SOURCES
+  comparetf2.c
+  extenddftf2.c
+  extendsftf2.c
+  fixtfdi.c
+  fixtfsi.c
+  fixtfti.c
+  fixunstfdi.c
+  fixunstfsi.c
+  fixunstfti.c
+  floatditf.c
+  floatsitf.c
+  floattitf.c
+  floatunditf.c
+  floatunsitf.c
+  floatuntitf.c
+  multc3.c
+  trunctfdf2.c
+  trunctfsf2.c)
+
 option(COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN
   "Skip the atomic builtin (this may be needed if system headers are unavailable)"
   Off)
@@ -404,24 +424,7 @@ elseif(NOT WIN32)
 endif()
 
 set(aarch64_SOURCES
-  comparetf2.c
-  extenddftf2.c
-  extendsftf2.c
-  fixtfdi.c
-  fixtfsi.c
-  fixtfti.c
-  fixunstfdi.c
-  fixunstfsi.c
-  fixunstfti.c
-  floatditf.c
-  floatsitf.c
-  floattitf.c
-  floatunditf.c
-  floatunsitf.c
-  floatuntitf.c
-  multc3.c
-  trunctfdf2.c
-  trunctfsf2.c
+  ${GENERIC_TF_SOURCES}
   ${GENERIC_SOURCES})
 
 set(armhf_SOURCES ${arm_SOURCES})
@@ -437,8 +440,10 @@ set(armv7em_SOURCES ${arm_SOURCES})
 
 set(mips_SOURCES ${GENERIC_SOURCES})
 set(mipsel_SOURCES ${mips_SOURCES})
-set(mips64_SOURCES ${mips_SOURCES})
-set(mips64el_SOURCES ${mips_SOURCES})
+set(mips64_SOURCES ${GENERIC_TF_SOURCES}
+                   ${mips_SOURCES})
+set(mips64el_SOURCES ${GENERIC_TF_SOURCES}
+                     ${mips_SOURCES})
 
 set(wasm32_SOURCES ${GENERIC_SOURCES})
 set(wasm64_SOURCES ${GENERIC_SOURCES})

Modified: compiler-rt/trunk/lib/builtins/int_types.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/int_types.h?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/int_types.h (original)
+++ compiler-rt/trunk/lib/builtins/int_types.h Thu May  4 08:34:17 2017
@@ -60,9 +60,7 @@ typedef union
     }s;
 } udwords;
 
-/* MIPS64 issue: PR 20098 */
-#if (defined(__LP64__) || defined(__wasm__)) && \
-    !(defined(__mips__) && defined(__clang__))
+#if (defined(__LP64__) || defined(__wasm__) || defined(__mips64))
 #define CRT_HAS_128BIT
 #endif
 

Modified: compiler-rt/trunk/test/builtins/Unit/divxc3_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/divxc3_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/divxc3_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/divxc3_test.c Thu May  4 08:34:17 2017
@@ -19,6 +19,7 @@
 #include <complex.h>
 #include <stdio.h>
 
+// UNSUPPORTED: mips
 // REQUIRES: c99-complex
 
 // Returns: the quotient of (a + ib) / (c + id)

Modified: compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixunstfti_test.c Thu May  4 08:34:17 2017
@@ -14,6 +14,8 @@
 
 #include <stdio.h>
 
+// UNSUPPORTED: mips
+
 #if __LDBL_MANT_DIG__ == 113
 
 #include "fp_test.h"

Modified: compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixunsxfti_test.c Thu May  4 08:34:17 2017
@@ -2,6 +2,8 @@
 // XFAIL: aarch64
 // test fails for aarch64 (see pr32260)
 
+// UNSUPPORTED: mips
+
 //===-- fixunsxfti_test.c - Test __fixunsxfti -----------------------------===//
 //
 //                     The LLVM Compiler Infrastructure

Modified: compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/fixxfti_test.c Thu May  4 08:34:17 2017
@@ -2,6 +2,8 @@
 // XFAIL: aarch64
 // test fails for aarch64 (see pr32260)
 
+// UNSUPPORTED: mips
+
 //===-- fixxfti_test.c - Test __fixxfti -----------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure

Modified: compiler-rt/trunk/test/builtins/Unit/floattixf_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/floattixf_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/floattixf_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/floattixf_test.c Thu May  4 08:34:17 2017
@@ -2,6 +2,8 @@
 // XFAIL: aarch64
 // test fails for aarch64 (see pr32260)
 
+// UNSUPPORTED: mips
+
 //===-- floattixf.c - Test __floattixf ------------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure

Modified: compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/floatuntixf_test.c Thu May  4 08:34:17 2017
@@ -2,6 +2,8 @@
 // XFAIL: aarch64
 // test fails for aarch64 (see pr32260)
 
+// UNSUPPORTED: mips
+
 //===-- floatuntixf.c - Test __floatuntixf --------------------------------===//
 //
 //                     The LLVM Compiler Infrastructure

Modified: compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c?rev=302147&r1=302146&r2=302147&view=diff
==============================================================================
--- compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c (original)
+++ compiler-rt/trunk/test/builtins/Unit/mulxc3_test.c Thu May  4 08:34:17 2017
@@ -19,6 +19,7 @@
 #include <complex.h>
 #include <stdio.h>
 
+// UNSUPPORTED: mips
 // REQUIRES: c99-complex
 
 // Returns: the product of a + ib and c + id




More information about the llvm-commits mailing list