[llvm-commits] [llvm-gcc-4.2] r46089 - /llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Chris Lattner
sabre at nondot.org
Wed Jan 16 13:10:06 PST 2008
Author: lattner
Date: Wed Jan 16 15:10:05 2008
New Revision: 46089
URL: http://llvm.org/viewvc/llvm-project?rev=46089&view=rev
Log:
Wire up __builtin_bswap32/64 to llvm.bswap. This is a 4.2-only feature.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=46089&r1=46088&r2=46089&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Wed Jan 16 15:10:05 2008
@@ -4167,6 +4167,16 @@
Result = Builder.CreateIntCast(Result, DestTy, "cast");
return true;
}
+ case BUILT_IN_BSWAP32:
+ case BUILT_IN_BSWAP64: {
+ Value *Amt = Emit(TREE_VALUE(TREE_OPERAND(exp, 1)), 0);
+ EmitBuiltinUnaryIntOp(Amt, Result, Intrinsic::bswap);
+ const Type *DestTy = ConvertType(TREE_TYPE(exp));
+ if (Result->getType() != DestTy)
+ Result = Builder.CreateIntCast(Result, DestTy, "cast");
+ return true;
+ }
+
case BUILT_IN_SQRT:
case BUILT_IN_SQRTF:
case BUILT_IN_SQRTL:
More information about the llvm-commits
mailing list