https://bugs.llvm.org/show_bug.cgi?id=38008

            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: unassignedb...@nondot.org
          Reporter: llvm-...@redking.me.uk
                CC: clement.cour...@gmail.com, craig.top...@gmail.com,
                    gchate...@google.com, llvm-bugs@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.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to