[llvm-commits] Initial patch for FMA4 support

Bruno Cardoso Lopes bruno.cardoso at gmail.com
Wed Nov 23 13:30:12 PST 2011


On Wed, Nov 23, 2011 at 7:24 PM, Jan Sjodin <jan_sjodin at yahoo.com> wrote:
> Thanks Bruno for the quick review.
>
>
>>There's no specific reason in this case to have the "Int" forms:
>
>>
>>+multiclass fma4s_Int<bits<8> opc, string OpcodeStr, Intrinsic Int,
>>+        PatFrag ld_frag> {
>>...
>>+defm Int_VFMADDSD4  : fma4s_Int<0x6B, "vfmaddsd",
>>int_x86_fma4_vfmadd_sd, alignedloadv2f64>;
>>
>>Instead, just write patterns to match the intrinsics with the
>>previously defined FMA4 instructions.
>
>
> Okay, will do.
>
>
>>
>>       if (HasVEX_4V)
>>         ++FirstMemOp;// Skip the register source (which is encoded in
>>VEX_VVVV).
>>+      if (HasXOP_W)
>>+        ++FirstMemOp;// Skip the register source (which is encoded in I8IMM).
>>
>>Use " if (HasVEX_4V || HasXOP_W)" and update the comment properly.
>
>
> It actually increments twice if both VEX_4V and HasXOP_W are true, not by one.
>
> I could update the comment to make it more clear e.g.:
>
> // Skip second register source (which is encoded in I8IMM)
>
> If you want it written a different way let me know.

Oops. No need, it's fine this way! :)

>
>>+#include "llvm/Support/Debug.h"
>>
>>Are you sure you need this?
>
> No, forgot to remove, will fix.
>
>
>>
>>+    } else {
>>+      CurOp += AddrOperands + 1;
>>+      if (HasVEX_4VOp3)
>>+    ++CurOp;
>>+    }
>>
>>"++CurOp" lacks proper indentation!
>
> Will fix.
>
>
> - Jan
>
>



-- 
Bruno Cardoso Lopes
http://www.brunocardoso.cc




More information about the llvm-commits mailing list