[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