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

            Bug ID: 50133
           Summary: [MS] Crush when calling intrinsic __cpuid
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: X86
          Assignee: unassignedb...@nondot.org
          Reporter: pengfei.w...@intel.com
                CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
                    llvm-...@redking.me.uk, pengfei.w...@intel.com,
                    spatel+l...@rotateright.com

Small reproducer:

#include <array>
#include <vector>
#include <intrin.h>

struct A {
  std::string S;
  std::vector<std::array<int, 4>> V;
  A() {
        std::array<int, 4> B;
        __cpuid(B.data(), 0);
        V.push_back(B);
        V.push_back(B);
        char C[64];
        memset(C, 0, sizeof(C));
        S = C;
  }
} T;

Commands:

clang-cl -mavx2 /EHs repro.cpp -S
cat repro.asm  | grep cpuid -A7
        cpuid
        #NO_APP
        mov     r11d, eax
        mov     rax, qword ptr [rbx + 72]       # 8-byte Reload
        mov     r10d, ebx
        mov     r9d, ecx
        mov     rcx, qword ptr [rbx + 80]       # 8-byte Reload
        mov     r8d, edx

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to