[llvm-bugs] [Bug 38008] New: [llvm-exegesis] Can't test any SSE/AVX instructions on pre-AVX hardware

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Jul 1 02:25:03 PDT 2018


            Bug ID: 38008
           Summary: [llvm-exegesis] Can't test any SSE/AVX instructions on
                    pre-AVX hardware
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: llvm-dev at redking.me.uk
                CC: clement.courbet at gmail.com, craig.topper at gmail.com,
                    gchatelet at google.com, llvm-bugs at lists.llvm.org

It looks like llvm-exegesis is always using VEX encoded instructions in the 
setRegToConstant function:

    if (llvm::X86::VR128XRegClass.contains(Reg)) {
      return setVectorRegToConstant(Reg, 16, llvm::X86::VMOVDQUrm);

For machines without AVX this will fail - it needs to be llvm::X86::MOVDQUrm on
those targets.

If we ever go as far as testing machines without SSE2 (PentiumIII etc) then we
would need to use the SSE1 llvm::X86::MOVUPSrm instead.

You might also want to check the reg classes as IIRC VR128X/VR256X are only
supposed to be used for AVX512 capable targets.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180701/7563e9a6/attachment.html>

More information about the llvm-bugs mailing list