llvm-project
0813837a - [WebAssembly][DAGCombine] Avoid scalarizing v8i8 to v8f16 conversions (#213636)

Commit
26 days ago
[WebAssembly][DAGCombine] Avoid scalarizing v8i8 to v8f16 conversions (#213636) WebAssembly FP16 can convert `v8i16` to `v8f16`, but direct `v8i8` to `v8f16` conversions were scalarized during SelectionDAG type legalization. This results in lane extractions, scalar conversions, calls to `__truncsfhf2`, and reconstruction of the result vector. We should extend `v8i8` to `v8i16` in `performVectorExtendToFPCombine` before type legalization. This allows the existing WebAssembly combines to select: - `i16x8.extend_low_i8x16_{s,u}` - `f16x8.convert_i16x8_s`
Author
Parents
Loading