diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td --- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td +++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td @@ -1347,21 +1347,21 @@ // Relaxed floating-point to int conversions //===----------------------------------------------------------------------===// -multiclass SIMD_RELAXED_CONVERT simdop> { +multiclass RelaxedConvert simdop> { defm op#_#vec : RELAXED_I<(outs V128:$dst), (ins V128:$vec), (outs), (ins), [(set (vec.vt V128:$dst), (vec.vt (op (arg.vt V128:$vec))))], vec.prefix#"."#name#"\t$dst, $vec", vec.prefix#"."#name, simdop>; } -defm "" : SIMD_RELAXED_CONVERT; -defm "" : SIMD_RELAXED_CONVERT; -defm "" : SIMD_RELAXED_CONVERT; -defm "" : SIMD_RELAXED_CONVERT; +defm "" : RelaxedConvert; +defm "" : RelaxedConvert; +defm "" : RelaxedConvert; +defm "" : RelaxedConvert; //===----------------------------------------------------------------------===// // Relaxed Fused Multiply- Add and Subtract (FMA/FMS) @@ -1408,18 +1408,21 @@ // Relaxed floating-point min and max. //===----------------------------------------------------------------------===// -multiclass SIMD_RELAXED_FMINMAX simdopMin, bits<32> simdopMax> { - defm RELAXED_FMIN_#vec : - RELAXED_I<(outs V128:$dst), (ins V128:$a, V128:$b), (outs), (ins), - [(set (vec.vt V128:$dst), (int_wasm_relaxed_min - (vec.vt V128:$a), (vec.vt V128:$b)))], - vec.prefix#".relaxed_min\t$dst, $a, $b", vec.prefix#".relaxed_min", simdopMin>; - defm RELAXED_FMAX_#vec : - RELAXED_I<(outs V128:$dst), (ins V128:$a, V128:$b), (outs), (ins), - [(set (vec.vt V128:$dst), (int_wasm_relaxed_max - (vec.vt V128:$a), (vec.vt V128:$b)))], - vec.prefix#".relaxed_max\t$dst, $a, $b", vec.prefix#".relaxed_max", simdopMax>; +multiclass RelaxedBinary simdop> { + defm _#vec : RELAXED_I<(outs V128:$dst), (ins V128:$lhs, V128:$rhs), + (outs), (ins), + [(set (vec.vt V128:$dst), + (node (vec.vt V128:$lhs), (vec.vt V128:$rhs)))], + vec.prefix#"."#name#"\t$dst, $lhs, $rhs", + vec.prefix#"."#name, simdop>; } -defm "" : SIMD_RELAXED_FMINMAX; -defm "" : SIMD_RELAXED_FMINMAX; +defm SIMD_RELAXED_FMIN : + RelaxedBinary; +defm SIMD_RELAXED_FMAX : + RelaxedBinary; +defm SIMD_RELAXED_FMIN : + RelaxedBinary; +defm SIMD_RELAXED_FMAX : + RelaxedBinary;