diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-01-16 21:12:35 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-01-16 21:12:35 +0000 |
commit | 0b118206bf3411722707f2e5cab8fd2eedcd50d6 (patch) | |
tree | 1a222f39010130f9e1a5a30f5937bf323b7265eb /include | |
parent | e86bf519e1ea57a84d37422ec364f89c322e3ef4 (diff) | |
download | external_llvm-0b118206bf3411722707f2e5cab8fd2eedcd50d6.zip external_llvm-0b118206bf3411722707f2e5cab8fd2eedcd50d6.tar.gz external_llvm-0b118206bf3411722707f2e5cab8fd2eedcd50d6.tar.bz2 |
For PR411:
This patch is an incremental step towards supporting a flat symbol table.
It de-overloads the intrinsic functions by providing type-specific intrinsics
and arranging for automatically upgrading from the old overloaded name to
the new non-overloaded name. Specifically:
llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64
llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64
llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64
llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64
llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64
New code should not use the overloaded intrinsic names. Warnings will be
emitted if they are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Intrinsics.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/llvm/Intrinsics.h b/include/llvm/Intrinsics.h index a0e01dd..37589c5 100644 --- a/include/llvm/Intrinsics.h +++ b/include/llvm/Intrinsics.h @@ -62,16 +62,27 @@ namespace Intrinsic { memcpy, // Copy non-overlapping memory blocks memmove, // Copy potentially overlapping memory blocks memset, // Fill memory with a byte value - isunordered, // Return true if either argument is a NaN - sqrt, // Square root + isunordered_f32,// Return true if either float argument is a NaN + isunordered_f64,// Return true if either double argument is a NaN + sqrt_f32, // Square root of float + sqrt_f64, // Square root of double // Bit manipulation instrinsics. bswap_i16, // Byteswap 16 bits bswap_i32, // Byteswap 32 bits bswap_i64, // Byteswap 64 bits - ctpop, // Count population - ctlz, // Count leading zeros - cttz, // Count trailing zeros + ctpop_i8, // Count population of sbyte + ctpop_i16, // Count population of short + ctpop_i32, // Count population of int + ctpop_i64, // Count population of long + ctlz_i8, // Count leading zeros of sbyte + ctlz_i16, // Count leading zeros of short + ctlz_i32, // Count leading zeros of int + ctlz_i64, // Count leading zeros of long + cttz_i8, // Count trailing zeros of sbyte + cttz_i16, // Count trailing zeros of short + cttz_i32, // Count trailing zeros of int + cttz_i64, // Count trailing zeros of long // Input/Output intrinsics. readport, |