OSDN Git Service

Add support for OpUMulExtended, OpSMulExtended
authorChris Forbes <chrisforbes@google.com>
Fri, 1 Mar 2019 17:08:47 +0000 (09:08 -0800)
committerChris Forbes <chrisforbes@google.com>
Mon, 4 Mar 2019 18:37:51 +0000 (18:37 +0000)
commite86b6dcc2522c1e6fc6a4550a514fe2793224c0b
tree01adb4f9fc44895e05243d5104a62249dc1d863f
parent6fae32cb3e6a02d5004bce8d83d10660f2626032
Add support for OpUMulExtended, OpSMulExtended

- Make the existing LLVMReactor lowering support for MulHigh on non-x86
  available on x86 as well, as we don't have good intrinsics-based implementation
  of 4x 32bit mul highs. At some point in the future we can rework this
  to use some shuffles and a pair of pmuludq.
- Plumb through Int4 and UInt4 variants of MulHigh
- Implement SPIRV OpUMulExtended, OpSMulExtended in terms of MulHigh

Bug: b/126873455
Change-Id: I25ba0a69691e7a6f7a5542ec4a90a44ba8f68331
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25929
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
src/Pipeline/SpirvShader.cpp
src/Reactor/LLVMReactor.cpp
src/Reactor/Reactor.hpp