aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-01-16 21:12:35 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-01-16 21:12:35 +0000
commit0b118206bf3411722707f2e5cab8fd2eedcd50d6 (patch)
tree1a222f39010130f9e1a5a30f5937bf323b7265eb /include
parente86bf519e1ea57a84d37422ec364f89c322e3ef4 (diff)
downloadexternal_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.h21
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,