aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/CBuiltins.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bschommer@users.noreply.github.com>2018-09-18 10:43:53 +0200
committerXavier Leroy <xavierleroy@users.noreply.github.com>2018-09-18 10:43:53 +0200
commit51d32b92df4eeba729c4cb950d6374b8f879ca5c (patch)
tree996b6ba29f667490777dfdade843f51b452716fc /powerpc/CBuiltins.ml
parent0af832379495bbfcd5f4cef6c5d00fad820b5856 (diff)
downloadcompcert-kvx-51d32b92df4eeba729c4cb950d6374b8f879ca5c.tar.gz
compcert-kvx-51d32b92df4eeba729c4cb950d6374b8f879ca5c.zip
Add builtin isel (conditional move) for int64, uint64 and _Bool (#140)
New builtin isel variants to support conditional moves for 64bit integers and _Bool values. Bug 24516
Diffstat (limited to 'powerpc/CBuiltins.ml')
-rw-r--r--powerpc/CBuiltins.ml9
1 files changed, 9 insertions, 0 deletions
diff --git a/powerpc/CBuiltins.ml b/powerpc/CBuiltins.ml
index c76b69ba..11b7aef9 100644
--- a/powerpc/CBuiltins.ml
+++ b/powerpc/CBuiltins.ml
@@ -142,6 +142,15 @@ let builtins = {
(* uisel *)
"__builtin_uisel",
(TInt (IUInt, []),[TInt(IBool, []);TInt(IUInt, []);TInt(IUInt, [])],false);
+ (* isel64 *)
+ "__builtin_isel64",
+ (TInt (ILongLong, []),[TInt(IBool, []);TInt(ILongLong, []);TInt(ILongLong, [])],false);
+ (* uisel *)
+ "__builtin_uisel64",
+ (TInt (IULongLong, []),[TInt(IBool, []);TInt(IULongLong, []);TInt(IULongLong, [])],false);
+ (* bsel *)
+ "__builtin_bsel",
+ (TInt (IBool, []),[TInt(IBool, []);TInt(IBool, []);TInt(IBool, [])],false);
(* no operation *)
"__builtin_nop",
(TVoid [], [], false);