Compile and test i128 math builtins for Win64
authorReid Kleckner <rnk@google.com>
Thu, 1 Nov 2018 00:00:03 +0000 (00:00 +0000)
committerReid Kleckner <rnk@google.com>
Thu, 1 Nov 2018 00:00:03 +0000 (00:00 +0000)
commitdffe5a3807c8327817c5b72f1fc44f1f39907936
tree5c1cda55d2f5d14e66259fb60d1815dfe6378940
parentb61232eacdf1b9fcd3aadb962a83be5b47cc1e1e
Compile and test i128 math builtins for Win64

Summary:
Windows has always been LLP64, not LP64, so the macros were incorrect.
Check for _WIN64, since AArch64 sets that too.

The tests have to be fixed up in two main ways:
1. Use 'ULL' suffixes to avoid sign extension when passing hex literals
   with the sign bit set to signed 128 arguments. Clang
   -fms-compatibility makes such hex literals signed, not unsigned.
2. Disable various tests for 80-bit long double interoperation with i128
   values.

Reviewers: joerg, mstorsjo

Subscribers: javed.absar, kristof.beyls, hiraditya, aheejin, llvm-commits

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

llvm-svn: 345796
39 files changed:
compiler-rt/lib/builtins/int_types.h
compiler-rt/test/builtins/CMakeLists.txt
compiler-rt/test/builtins/Unit/absvti2_test.c
compiler-rt/test/builtins/Unit/addvti3_test.c
compiler-rt/test/builtins/Unit/ashlti3_test.c
compiler-rt/test/builtins/Unit/ashrti3_test.c
compiler-rt/test/builtins/Unit/clzti2_test.c
compiler-rt/test/builtins/Unit/cmpti2_test.c
compiler-rt/test/builtins/Unit/ctzti2_test.c
compiler-rt/test/builtins/Unit/divti3_test.c
compiler-rt/test/builtins/Unit/ffsti2_test.c
compiler-rt/test/builtins/Unit/fixdfti_test.c
compiler-rt/test/builtins/Unit/fixsfti_test.c
compiler-rt/test/builtins/Unit/fixunsdfti_test.c
compiler-rt/test/builtins/Unit/fixunssfti_test.c
compiler-rt/test/builtins/Unit/fixunsxfti_test.c
compiler-rt/test/builtins/Unit/fixxfti_test.c
compiler-rt/test/builtins/Unit/floattidf_test.c
compiler-rt/test/builtins/Unit/floattisf_test.c
compiler-rt/test/builtins/Unit/floattixf_test.c
compiler-rt/test/builtins/Unit/floatuntidf_test.c
compiler-rt/test/builtins/Unit/floatuntisf_test.c
compiler-rt/test/builtins/Unit/floatuntixf_test.c
compiler-rt/test/builtins/Unit/lit.cfg
compiler-rt/test/builtins/Unit/lit.site.cfg.in
compiler-rt/test/builtins/Unit/lshrti3_test.c
compiler-rt/test/builtins/Unit/modti3_test.c
compiler-rt/test/builtins/Unit/muloti4_test.c
compiler-rt/test/builtins/Unit/multi3_test.c
compiler-rt/test/builtins/Unit/mulvti3_test.c
compiler-rt/test/builtins/Unit/negti2_test.c
compiler-rt/test/builtins/Unit/negvti2_test.c
compiler-rt/test/builtins/Unit/parityti2_test.c
compiler-rt/test/builtins/Unit/popcountti2_test.c
compiler-rt/test/builtins/Unit/subvti3_test.c
compiler-rt/test/builtins/Unit/ucmpti2_test.c
compiler-rt/test/builtins/Unit/udivmodti4_test.c
compiler-rt/test/builtins/Unit/udivti3_test.c
compiler-rt/test/builtins/Unit/umodti3_test.c