[llvm] [WebAssembly] Fall back to SelectionDAG for vector compares in FastISel (PR #227368)
Patrick Rachford via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 2 11:53:44 PDT 2026
================
@@ -0,0 +1,44 @@
+; RUN: llc %s -mtriple=wasm32 -O0 -fast-isel -mattr=+simd128 -verify-machineinstrs -o - | FileCheck %s
+; RUN: llc %s -mtriple=wasm64 -O0 -fast-isel -mattr=+simd128 -verify-machineinstrs -o - | FileCheck %s
+; RUN: llc %s -mtriple=wasm32 -O0 -fast-isel=false -mattr=+simd128 -verify-machineinstrs -o - | FileCheck %s
+
+; selectICmp classifies any non-i64 operand as i32 and selectFCmp any
+; non-f64 operand as f32, so a vector compare takes the FastISel path
+; and emits a scalar i32.eq/f32.eq over v128 registers, failing module
+; validation. The -fast-isel=false RUN exercises the SelectionDAG path.
+
+declare i1 @any16(<16 x i1>)
+declare i1 @any4(<4 x i1>)
+
+; CHECK-LABEL: eq_i8x16:
+define i32 @eq_i8x16(ptr %pa, ptr %pb) {
----------------
rachfop wrote:
On it. Thanks!
https://github.com/llvm/llvm-project/pull/227368
More information about the llvm-commits
mailing list