From dd9958f08f75e78e30fdf428397edfc7b2d4e86a Mon Sep 17 00:00:00 2001 From: Daniel Sanders Date: Tue, 10 May 2016 09:01:54 +0000 Subject: [PATCH] Clarify the difference between ISD::BITCAST and the bitcast instruction from LLVM-IR. 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 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/llvm/CodeGen/ISDOpcodes.h b/include/llvm/CodeGen/ISDOpcodes.h index 41d5993aac4..666671c4f81 100644 --- a/include/llvm/CodeGen/ISDOpcodes.h +++ b/include/llvm/CodeGen/ISDOpcodes.h @@ -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 -- 2.50.1