OSDN Git Service

Clarify the difference between ISD::BITCAST and the bitcast instruction from LLVM-IR.
authorDaniel Sanders <daniel.sanders@imgtec.com>
Tue, 10 May 2016 09:01:54 +0000 (09:01 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Tue, 10 May 2016 09:01:54 +0000 (09:01 +0000)
Subscribers: llvm-commits, hfinkel

Differential Revision: http://reviews.llvm.org/D16464

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269031 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ISDOpcodes.h

index 41d5993..666671c 100644 (file)
@@ -486,6 +486,12 @@ namespace ISD {
     /// 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