From 28df8ffde7cf9a53e1ce6cf13e6b495fb4865295 Mon Sep 17 00:00:00 2001 From: jzielins Date: Mon, 7 Sep 2020 16:49:35 +0200 Subject: [PATCH] swr: Use ElemenCount constructor for LLVM 11 In LLVM 12 ElementCount constructor is private and instead of using it explicitly, ::get function should be used, but in LLVM 11, the constructor is still the way to go. Reviewed-by: Krzysztof Raszkowski Closes: #3490 Fixes: 639605e5ba947bb947313a6584ef7fbb8619e9c2 Part-of: --- .../swr/rasterizer/jitter/builder_misc.cpp | 80 ++++++++++++------- .../jitter/functionpasses/lower_x86.cpp | 8 +- 2 files changed, 55 insertions(+), 33 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp index 530752850c6..fc5d782a55c 100644 --- a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp +++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp @@ -133,91 +133,111 @@ namespace SwrJit Value* Builder::VIMMED1(uint64_t i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); #endif } Value* Builder::VIMMED1_16(uint64_t i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth16, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth16, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); #endif } Value* Builder::VIMMED1(int i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); #endif } Value* Builder::VIMMED1_16(int i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth16, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth16, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); #endif } Value* Builder::VIMMED1(uint32_t i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); #endif } Value* Builder::VIMMED1_16(uint32_t i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth16, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth16, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); #endif } Value* Builder::VIMMED1(float i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); #endif } Value* Builder::VIMMED1_16(float i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth16, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth16, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); #endif } Value* Builder::VIMMED1(bool i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth, false), cast(C(i))); #endif } Value* Builder::VIMMED1_16(bool i) { -#if LLVM_VERSION_MAJOR > 10 - return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); -#else +#if LLVM_VERSION_MAJOR <= 10 return ConstantVector::getSplat(mVWidth16, cast(C(i))); +#elif LLVM_VERSION_MAJOR == 11 + return ConstantVector::getSplat(ElementCount(mVWidth16, false), cast(C(i))); +#else + return ConstantVector::getSplat(ElementCount::get(mVWidth16, false), cast(C(i))); #endif } diff --git a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp b/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp index 216121bc51f..7ee22899c12 100644 --- a/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp +++ b/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp @@ -555,10 +555,12 @@ namespace SwrJit B->STORE(vSrc, pTmp); v32Gather = UndefValue::get(vSrc->getType()); -#if LLVM_VERSION_MAJOR > 10 - auto vi32Scale = ConstantVector::getSplat(ElementCount::get(numElem, false), cast(i32Scale)); -#else +#if LLVM_VERSION_MAJOR <= 10 auto vi32Scale = ConstantVector::getSplat(numElem, cast(i32Scale)); +#elif LLVM_VERSION_MAJOR == 11 + auto vi32Scale = ConstantVector::getSplat(ElementCount(numElem, false), cast(i32Scale)); +#else + auto vi32Scale = ConstantVector::getSplat(ElementCount::get(numElem, false), cast(i32Scale)); #endif auto vi32Offsets = B->MUL(vi32Indices, vi32Scale);