[PATCH] D16464: Clarify the difference between ISD::BITCAST and the bitcast instruction from LLVM-IR.

Daniel Sanders via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 22 05:37:42 PST 2016


dsanders created this revision.
dsanders added subscribers: hfinkel, llvm-commits.

http://reviews.llvm.org/D16464

Files:
  include/llvm/CodeGen/ISDOpcodes.h

Index: include/llvm/CodeGen/ISDOpcodes.h
===================================================================
--- include/llvm/CodeGen/ISDOpcodes.h
+++ include/llvm/CodeGen/ISDOpcodes.h
@@ -483,6 +483,12 @@
     /// the same bit size (e.g.  f32 <-> i32).  This can also be used for
     /// int-to-int or fp-to-fp conversions, but that is a noop, deleted by
     /// getNode().
+    ///
+    /// This operator is subtly different from the bitcast instruction from
+    /// LLVM-IR since this node may change the bits in the register. For
+    /// example, this occurs on big-endian NEON and big-endian MSA where the
+    /// layout of the bits in the register depends on the vector type and this
+    /// operator acts as a shuffle operation for some vector type combinations.
     BITCAST,
 
     /// ADDRSPACECAST - This operator converts between pointers of different


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16464.45682.patch
Type: text/x-patch
Size: 870 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160122/e242a6ec/attachment.bin>


More information about the llvm-commits mailing list