[llvm-commits] [llvm] r78508 - in /llvm/trunk: lib/Target/X86/X86CodeEmitter.cpp lib/Target/X86/X86InstrFormats.td lib/Target/X86/X86InstrInfo.cpp lib/Target/X86/X86InstrInfo.h lib/Target/X86/X86InstrSSE.td test/CodeGen/X86/sse42.ll

Eric Christopher echristo at apple.com
Mon Aug 10 14:46:13 PDT 2009


Resending as me this time :)

On Aug 10, 2009, at 2:38 PM, Eric Christopher wrote:

>
> On Aug 8, 2009, at 5:13 PM, Eli Friedman wrote:
>
>> On Sat, Aug 8, 2009 at 2:55 PM, Eric  
>> Christopher<echristo at apple.com> wrote:
>>> +  // TODO: These correspond to int_x86_sse42_crc32_8 but with a  
>>> 64-bit src
>>> +  // and dest, figure it out.
>>> +  //def CRC64m8  : SS42FI<0xF1, MRMSrcMem, (outs GR64:$dst),
>>> +  //                    (ins GR32:$src1, i8mem:$src2),
>>> +  //                    "crc32 \t{$src2, $src1|$src1, $src2}",
>>> +  //                     [(set GR64:$dst,
>>> +  //                       (int_x86_sse42_crc32_8 GR64:$src1,
>>> +  //                       (load addr:$src2)))]>,
>>> +  //                       OpSize, REX_W;
>>> +  //def CRC64r8  : SS42FI<0xF1, MRMSrcReg, (outs GR64:$dst),
>>> +  //                    (ins GR64:$src1, GR8:$src2),
>>> +  //                    "crc32 \t{$src2, $src1|$src1, $src2}",
>>> +  //                     [(set GR64:$dst,
>>> +  //                       (int_x86_sse42_crc32_8 GR32:$src1,  
>>> GR8:$src2))]>,
>>> +  //                       OpSize, REX_W;
>>> +}
>>
>> Hmm... if the encoding is correct, I'd suggest just getting rid of  
>> the
>> pattern and uncommenting it.  There isn't any situation where we  
>> would
>> actually want to use these forms; the effect is exactly the same as
>> CRC32r/m8.
>
> Yeah, wasn't sure since the target register size is different, but  
> seems reasonable.

-eric



More information about the llvm-commits mailing list