[PATCH] D41507: avxintrin.h documentation fixes and updates
kromanova accepted this revision. kromanova added a comment. LGTM too. https://reviews.llvm.org/D41507 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D41507: avxintrin.h documentation fixes and updates
RKSimon accepted this revision. RKSimon added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D41507 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D41507: avxintrin.h documentation fixes and updates
dyung updated this revision to Diff 128861. dyung added a comment. Updated change to address review feedback. https://reviews.llvm.org/D41507 Files: avxintrin.h Index: avxintrin.h === --- avxintrin.h +++ avxintrin.h @@ -1120,7 +1120,7 @@ /// \param A ///A 256-bit vector of [8 x float]. /// \param C -///An immediate integer operand specifying how the values are to be \n +///An immediate integer operand specifying how the values are to be ///copied. \n ///Bits [1:0]: \n /// 00: Bits [31:0] of the source are copied to bits [31:0] of the @@ -1150,7 +1150,7 @@ /// 11: Bits [127:96] of the source are copied to bits [95:64] of the /// returned vector. \n ///Bits [7:6]: \n -/// 00: Bits [31:qq0] of the source are copied to bits [127:96] of the +/// 00: Bits [31:0] of the source are copied to bits [127:96] of the /// returned vector. \n /// 01: Bits [63:32] of the source are copied to bits [127:96] of the /// returned vector. \n @@ -1665,38 +1665,38 @@ /// \param c ///An immediate integer operand, with bits [4:0] specifying which comparison ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equal (ordered, signaling) -///0x03 : Unordered (non-signaling) -///0x04 : Not-equal (unordered, non-signaling) -///0x05 : Not-less-than (unordered, signaling) -///0x06 : Not-less-than-or-equal (unordered, signaling) -///0x07 : Ordered (non-signaling) -///0x08 : Equal (unordered, non-signaling) -///0x09 : Not-greater-than-or-equal (unordered, signaling) -///0x0a : Not-greater-than (unordered, signaling) -///0x0b : False (ordered, non-signaling) -///0x0c : Not-equal (ordered, non-signaling) -///0x0d : Greater-than-or-equal (ordered, signaling) -///0x0e : Greater-than (ordered, signaling) -///0x0f : True (unordered, non-signaling) -///0x10 : Equal (ordered, signaling) -///0x11 : Less-than (ordered, non-signaling) -///0x12 : Less-than-or-equal (ordered, non-signaling) -///0x13 : Unordered (signaling) -///0x14 : Not-equal (unordered, signaling) -///0x15 : Not-less-than (unordered, non-signaling) -///0x16 : Not-less-than-or-equal (unordered, non-signaling) -///0x17 : Ordered (signaling) -///0x18 : Equal (unordered, signaling) -///0x19 : Not-greater-than-or-equal (unordered, non-signaling) -///0x1a : Not-greater-than (unordered, non-signaling) -///0x1b : False (ordered, signaling) -///0x1c : Not-equal (ordered, signaling) -///0x1d : Greater-than-or-equal (ordered, non-signaling) -///0x1e : Greater-than (ordered, non-signaling) -///0x1f : True (unordered, signaling) +///0x00: Equal (ordered, non-signaling) \n +///0x01: Less-than (ordered, signaling) \n +///0x02: Less-than-or-equal (ordered, signaling) \n +///0x03: Unordered (non-signaling) \n +///0x04: Not-equal (unordered, non-signaling) \n +///0x05: Not-less-than (unordered, signaling) \n +///0x06: Not-less-than-or-equal (unordered, signaling) \n +///0x07: Ordered (non-signaling) \n +///0x08: Equal (unordered, non-signaling) \n +///0x09: Not-greater-than-or-equal (unordered, signaling) \n +///0x0A: Not-greater-than (unordered, signaling) \n +///0x0B: False (ordered, non-signaling) \n +///0x0C: Not-equal (ordered, non-signaling) \n +///0x0D: Greater-than-or-equal (ordered, signaling) \n +///0x0E: Greater-than (ordered, signaling) \n +///0x0F: True (unordered, non-signaling) \n +///0x10: Equal (ordered, signaling) \n +///0x11: Less-than (ordered, non-signaling) \n +///0x12: Less-than-or-equal (ordered, non-signaling) \n +///0x13: Unordered (signaling) \n +///0x14: Not-equal (unordered, signaling) \n +///0x15: Not-less-than (unordered, non-signaling) \n +///0x16: Not-less-than-or-equal (unordered, non-signaling) \n +///0x17: Ordered (signaling) \n +///0x18: Equal (unordered, signaling) \n +///0x19: Not-greater-than-or-equal (unordered, non-signaling) \n +///0x1A: Not-greater-than (unordered, non-signaling) \n +///0x1B: False (ordered, signaling) \n +///0x1C: Not-equal (ordered, signaling) \n +///0x1D: Greater-than-or-equal (ordered, non-signaling) \n +///0x1E: Greater-than (ordered, non-signaling) \n +///0x1F: True (unordered, signaling) /// \returns A 128-bit vector of [2 x double] containing the comparison results. #define _mm_cmp_pd(a, b, c) __extension__ ({ \ (__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), \ @@ -1725,38 +1725,38 @@ /// \param c ///An immediate integer operand, with bits [4:0] specifying which comparison ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equa
[PATCH] D41507: avxintrin.h documentation fixes and updates
kromanova added inline comments. Comment at: lib/Headers/avxintrin.h:1668 ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equal (ordered, signaling) -///0x03 : Unordered (non-signaling) -///0x04 : Not-equal (unordered, non-signaling) -///0x05 : Not-less-than (unordered, signaling) -///0x06 : Not-less-than-or-equal (unordered, signaling) -///0x07 : Ordered (non-signaling) -///0x08 : Equal (unordered, non-signaling) -///0x09 : Not-greater-than-or-equal (unordered, signaling) -///0x0a : Not-greater-than (unordered, signaling) -///0x0b : False (ordered, non-signaling) -///0x0c : Not-equal (ordered, non-signaling) -///0x0d : Greater-than-or-equal (ordered, signaling) -///0x0e : Greater-than (ordered, signaling) -///0x0f : True (unordered, non-signaling) -///0x10 : Equal (ordered, signaling) -///0x11 : Less-than (ordered, non-signaling) -///0x12 : Less-than-or-equal (ordered, non-signaling) -///0x13 : Unordered (signaling) -///0x14 : Not-equal (unordered, signaling) -///0x15 : Not-less-than (unordered, non-signaling) -///0x16 : Not-less-than-or-equal (unordered, non-signaling) -///0x17 : Ordered (signaling) -///0x18 : Equal (unordered, signaling) -///0x19 : Not-greater-than-or-equal (unordered, non-signaling) -///0x1a : Not-greater-than (unordered, non-signaling) -///0x1b : False (ordered, signaling) -///0x1c : Not-equal (ordered, signaling) -///0x1d : Greater-than-or-equal (ordered, non-signaling) -///0x1e : Greater-than (ordered, non-signaling) -///0x1f : True (unordered, signaling) +///00h: Equal (ordered, non-signaling) \n +///01h: Less-than (ordered, signaling) \n lebedev.ri wrote: > While i'm incompetent to actually review this, i have a question. > //Why// replace code-friendly `0x00` with `00h`? > And, //why// is this hex in the first place? Why not decimals? > >> why is this hex in the first place? Why not decimals? There are a few reasons that I could think of: (1) for consistency with the defines in the header file describing these values: #define _CMP_EQ_OQ0x00 /* Equal (ordered, non-signaling) */ #define _CMP_LT_OS0x01 /* Less-than (ordered, signaling) */ #define _CMP_LE_OS0x02 /* Less-than-or-equal (ordered, signaling) */ #define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */ #define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */ (2) This immediate is 5 bits, so when using hex, it's much easier to tell which bits are set/not set/ (3) For consistency with Intel's and AMD's documentation for intrinsics and corresponding instructions. I s developers prefer to have it in 0x format, this change it was done for consistency. AMD and Intel manuals use the 'h' suffix style Comment at: lib/Headers/avxintrin.h:1668 ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equal (ordered, signaling) -///0x03 : Unordered (non-signaling) -///0x04 : Not-equal (unordered, non-signaling) -///0x05 : Not-less-than (unordered, signaling) -///0x06 : Not-less-than-or-equal (unordered, signaling) -///0x07 : Ordered (non-signaling) -///0x08 : Equal (unordered, non-signaling) -///0x09 : Not-greater-than-or-equal (unordered, signaling) -///0x0a : Not-greater-than (unordered, signaling) -///0x0b : False (ordered, non-signaling) -///0x0c : Not-equal (ordered, non-signaling) -///0x0d : Greater-than-or-equal (ordered, signaling) -///0x0e : Greater-than (ordered, signaling) -///0x0f : True (unordered, non-signaling) -///0x10 : Equal (ordered, signaling) -///0x11 : Less-than (ordered, non-signaling) -///0x12 : Less-than-or-equal (ordered, non-signaling) -///0x13 : Unordered (signaling) -///0x14 : Not-equal (unordered, signaling) -///0x15 : Not-less-than (unordered, non-signaling) -///0x16 : Not-less-than-or-equal (unordered, non-signaling) -///0x17 : Ordered (signaling) -///0x18 : Equal (unordered, signaling) -///0x19 : Not-greater-than-or-equal (unordered, non-signaling) -///0x1a : Not-greater-than (unordered, non-signaling) -///0x1b : False (ordered, signaling) -///0x1c : Not-equal (ordered, signaling) -///0x1d : Greater-than-or-equal (ordered, non-signaling) -///0x1e : Greater-than (ordered, non-signaling) -///0x1f : True (unordered, signaling) +///00h: Equal (ordered, non-signaling) \n +///01h: Less-than (ordered, signaling) \n kromanova wrote: > lebedev.ri wrote: > > While i'm incompetent to actually review this, i have a question. > > //Why// replace code-friendly `0x00` with `00h`? > > And, //why// is this hex in the first place? Why not decimals? > > > >> why is this hex i
[PATCH] D41507: avxintrin.h documentation fixes and updates
lebedev.ri added inline comments. Comment at: lib/Headers/avxintrin.h:1668 ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equal (ordered, signaling) -///0x03 : Unordered (non-signaling) -///0x04 : Not-equal (unordered, non-signaling) -///0x05 : Not-less-than (unordered, signaling) -///0x06 : Not-less-than-or-equal (unordered, signaling) -///0x07 : Ordered (non-signaling) -///0x08 : Equal (unordered, non-signaling) -///0x09 : Not-greater-than-or-equal (unordered, signaling) -///0x0a : Not-greater-than (unordered, signaling) -///0x0b : False (ordered, non-signaling) -///0x0c : Not-equal (ordered, non-signaling) -///0x0d : Greater-than-or-equal (ordered, signaling) -///0x0e : Greater-than (ordered, signaling) -///0x0f : True (unordered, non-signaling) -///0x10 : Equal (ordered, signaling) -///0x11 : Less-than (ordered, non-signaling) -///0x12 : Less-than-or-equal (ordered, non-signaling) -///0x13 : Unordered (signaling) -///0x14 : Not-equal (unordered, signaling) -///0x15 : Not-less-than (unordered, non-signaling) -///0x16 : Not-less-than-or-equal (unordered, non-signaling) -///0x17 : Ordered (signaling) -///0x18 : Equal (unordered, signaling) -///0x19 : Not-greater-than-or-equal (unordered, non-signaling) -///0x1a : Not-greater-than (unordered, non-signaling) -///0x1b : False (ordered, signaling) -///0x1c : Not-equal (ordered, signaling) -///0x1d : Greater-than-or-equal (ordered, non-signaling) -///0x1e : Greater-than (ordered, non-signaling) -///0x1f : True (unordered, signaling) +///00h: Equal (ordered, non-signaling) \n +///01h: Less-than (ordered, signaling) \n While i'm incompetent to actually review this, i have a question. //Why// replace code-friendly `0x00` with `00h`? And, //why// is this hex in the first place? Why not decimals? https://reviews.llvm.org/D41507 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D41507: avxintrin.h documentation fixes and updates
dyung created this revision. This is the result of several patches we made internally to update the documentation that we would like to have reviewed for possible submission. The changes include: 1. Fix incorrect wording in various intrinsic descriptions. Previously the descriptions used "low-order" and "high-order" when the intended meaning was "even-indexed" and "odd-indexed". 2. Fix a few typos and errors found during review. 3. Restore new line endings and change to use hex suffixes (0h instead of 0x0). These patches were made by Craig Flores https://reviews.llvm.org/D41507 Files: lib/Headers/avxintrin.h Index: lib/Headers/avxintrin.h === --- lib/Headers/avxintrin.h +++ lib/Headers/avxintrin.h @@ -1120,7 +1120,7 @@ /// \param A ///A 256-bit vector of [8 x float]. /// \param C -///An immediate integer operand specifying how the values are to be \n +///An immediate integer operand specifying how the values are to be ///copied. \n ///Bits [1:0]: \n /// 00: Bits [31:0] of the source are copied to bits [31:0] of the @@ -1150,7 +1150,7 @@ /// 11: Bits [127:96] of the source are copied to bits [95:64] of the /// returned vector. \n ///Bits [7:6]: \n -/// 00: Bits [31:qq0] of the source are copied to bits [127:96] of the +/// 00: Bits [31:0] of the source are copied to bits [127:96] of the /// returned vector. \n /// 01: Bits [63:32] of the source are copied to bits [127:96] of the /// returned vector. \n @@ -1665,38 +1665,38 @@ /// \param c ///An immediate integer operand, with bits [4:0] specifying which comparison ///operation to use: \n -///0x00 : Equal (ordered, non-signaling) -///0x01 : Less-than (ordered, signaling) -///0x02 : Less-than-or-equal (ordered, signaling) -///0x03 : Unordered (non-signaling) -///0x04 : Not-equal (unordered, non-signaling) -///0x05 : Not-less-than (unordered, signaling) -///0x06 : Not-less-than-or-equal (unordered, signaling) -///0x07 : Ordered (non-signaling) -///0x08 : Equal (unordered, non-signaling) -///0x09 : Not-greater-than-or-equal (unordered, signaling) -///0x0a : Not-greater-than (unordered, signaling) -///0x0b : False (ordered, non-signaling) -///0x0c : Not-equal (ordered, non-signaling) -///0x0d : Greater-than-or-equal (ordered, signaling) -///0x0e : Greater-than (ordered, signaling) -///0x0f : True (unordered, non-signaling) -///0x10 : Equal (ordered, signaling) -///0x11 : Less-than (ordered, non-signaling) -///0x12 : Less-than-or-equal (ordered, non-signaling) -///0x13 : Unordered (signaling) -///0x14 : Not-equal (unordered, signaling) -///0x15 : Not-less-than (unordered, non-signaling) -///0x16 : Not-less-than-or-equal (unordered, non-signaling) -///0x17 : Ordered (signaling) -///0x18 : Equal (unordered, signaling) -///0x19 : Not-greater-than-or-equal (unordered, non-signaling) -///0x1a : Not-greater-than (unordered, non-signaling) -///0x1b : False (ordered, signaling) -///0x1c : Not-equal (ordered, signaling) -///0x1d : Greater-than-or-equal (ordered, non-signaling) -///0x1e : Greater-than (ordered, non-signaling) -///0x1f : True (unordered, signaling) +///00h: Equal (ordered, non-signaling) \n +///01h: Less-than (ordered, signaling) \n +///02h: Less-than-or-equal (ordered, signaling) \n +///03h: Unordered (non-signaling) \n +///04h: Not-equal (unordered, non-signaling) \n +///05h: Not-less-than (unordered, signaling) \n +///06h: Not-less-than-or-equal (unordered, signaling) \n +///07h: Ordered (non-signaling) \n +///08h: Equal (unordered, non-signaling) \n +///09h: Not-greater-than-or-equal (unordered, signaling) \n +///0Ah: Not-greater-than (unordered, signaling) \n +///0Bh: False (ordered, non-signaling) \n +///0Ch: Not-equal (ordered, non-signaling) \n +///0Dh: Greater-than-or-equal (ordered, signaling) \n +///0Eh: Greater-than (ordered, signaling) \n +///0Fh: True (unordered, non-signaling) \n +///10h: Equal (ordered, signaling) \n +///11h: Less-than (ordered, non-signaling) \n +///12h: Less-than-or-equal (ordered, non-signaling) \n +///13h: Unordered (signaling) \n +///14h: Not-equal (unordered, signaling) \n +///15h: Not-less-than (unordered, non-signaling) \n +///16h: Not-less-than-or-equal (unordered, non-signaling) \n +///17h: Ordered (signaling) \n +///18h: Equal (unordered, signaling) \n +///19h: Not-greater-than-or-equal (unordered, non-signaling) \n +///1Ah: Not-greater-than (unordered, non-signaling) \n +///1Bh: False (ordered, signaling) \n +///1Ch: Not-equal (ordered, signaling) \n +///1Dh: Greater-than-or-equal (ordered, non-signaling) \n +///1Eh: Greater-than (ordered, non-signaling) \n +///1Fh: True (unordered, signal