aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorNicolas Vasilache <nicolasvasilache@users.noreply.github.com>2023-09-18 19:02:46 +0200
committerGitHub <noreply@github.com>2023-09-18 19:02:46 +0200
commit04ba475e85cb97e9006a130855b76479b5149f47 (patch)
tree7e0996bf111c10a7a689747b4baad9d800664ad9 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parent2a38d8391868c4761380c35a4002680a05c7617e (diff)
downloadllvm-04ba475e85cb97e9006a130855b76479b5149f47.zip
llvm-04ba475e85cb97e9006a130855b76479b5149f47.tar.gz
llvm-04ba475e85cb97e9006a130855b76479b5149f47.tar.bz2
[mlir][Vector] Add a rewrite pattern for better low-precision ext(bit… (#66648)
…cast) expansion This revision adds a rewrite for sequences of vector `ext(bitcast)` to use a more efficient sequence of vector operations comprising `shuffle` and `bitwise` ops. Such patterns appear naturally when writing quantization / dequantization functionality with the vector dialect. The rewrite performs a simple enumeration of each of the bits in the result vector and determines its provenance in the source vector. The enumeration is used to generate the proper sequence of `shuffle`, `andi`, `ori` with shifts`. The rewrite currently only applies to 1-D non-scalable vectors and bails out if the final vector element type is not a multiple of 8. This is a failsafe heuristic determined empirically: if the resulting type is not an even number of bytes, further complexities arise that are not improved by this pattern: the heavy lifting still needs to be done by LLVM.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
0 files changed, 0 insertions, 0 deletions