diff options
Diffstat (limited to 'src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp')
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp index 54987c77246..aa9e2dddee8 100644 --- a/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp +++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_misc.cpp @@ -602,76 +602,6 @@ namespace SwrJit } ////////////////////////////////////////////////////////////////////////// - /// @brief Generate a VPERMD operation (shuffle 32 bit integer values - /// across 128 bit lanes) in LLVM IR. If not supported on the underlying - /// platform, emulate it - /// @param a - 256bit SIMD lane(8x32bit) of integer values. - /// @param idx - 256bit SIMD lane(8x32bit) of 3 bit lane index values - Value *Builder::PERMD(Value* a, Value* idx) - { - Value* res; - // use avx2 permute instruction if available - if(JM()->mArch.AVX2()) - { - res = VPERMD(a, idx); - } - else - { - if (isa<Constant>(idx)) - { - res = VSHUFFLE(a, a, idx); - } - else - { - res = VUNDEF_I(); - for (uint32_t l = 0; l < JM()->mVWidth; ++l) - { - Value* pIndex = VEXTRACT(idx, C(l)); - Value* pVal = VEXTRACT(a, pIndex); - res = VINSERT(res, pVal, C(l)); - } - } - } - return res; - } - - ////////////////////////////////////////////////////////////////////////// - /// @brief Generate a VPERMPS operation (shuffle 32 bit float values - /// across 128 bit lanes) in LLVM IR. If not supported on the underlying - /// platform, emulate it - /// @param a - 256bit SIMD lane(8x32bit) of float values. - /// @param idx - 256bit SIMD lane(8x32bit) of 3 bit lane index values - Value *Builder::PERMPS(Value* a, Value* idx) - { - Value* res; - // use avx2 permute instruction if available - if (JM()->mArch.AVX2()) - { - // llvm 3.6.0 swapped the order of the args to vpermd - res = VPERMPS(idx, a); - } - else - { - if (isa<Constant>(idx)) - { - res = VSHUFFLE(a, a, idx); - } - else - { - res = VUNDEF_F(); - for (uint32_t l = 0; l < JM()->mVWidth; ++l) - { - Value* pIndex = VEXTRACT(idx, C(l)); - Value* pVal = VEXTRACT(a, pIndex); - res = VINSERT(res, pVal, C(l)); - } - } - } - - return res; - } - - ////////////////////////////////////////////////////////////////////////// /// @brief Generate a VCVTPH2PS operation (float16->float32 conversion) /// in LLVM IR. If not supported on the underlying platform, emulate it /// @param a - 128bit SIMD lane(8x16bit) of float16 in int16 format. |