llvm.org GIT mirror llvm / ed992c9
[X86] Reject 512-bit types in getRegForInlineAsmConstraint when AVX512 is not enabled. Same for 256 bit and AVX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358872 91177308-0d34-0410-b5e6-96231b3b80d8 Craig Topper 5 months ago
1 changed file(s) with 5 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
4367543675 // Scalar SSE types.
4367643676 case MVT::f32:
4367743677 case MVT::i32:
43678 if (VConstraint && Subtarget.hasAVX512() && Subtarget.hasVLX())
43678 if (VConstraint && Subtarget.hasVLX())
4367943679 return std::make_pair(0U, &X86::FR32XRegClass);
4368043680 return std::make_pair(0U, &X86::FR32RegClass);
4368143681 case MVT::f64:
4370343703 case MVT::v4f64:
4370443704 if (VConstraint && Subtarget.hasVLX())
4370543705 return std::make_pair(0U, &X86::VR256XRegClass);
43706 return std::make_pair(0U, &X86::VR256RegClass);
43706 if (Subtarget.hasAVX())
43707 return std::make_pair(0U, &X86::VR256RegClass);
43708 break;
4370743709 case MVT::v8f64:
4370843710 case MVT::v16f32:
4370943711 case MVT::v16i32:
4371043712 case MVT::v8i64:
43713 if (!Subtarget.hasAVX512()) break;
4371143714 if (VConstraint)
4371243715 return std::make_pair(0U, &X86::VR512RegClass);
4371343716 return std::make_pair(0U, &X86::VR512_0_15RegClass);