[llvm] [X86][StrictFP] Add widening support for STRICT_FMIN/STRICT_FMAX (PR #119391)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 11 04:18:32 PST 2024
================
@@ -6087,9 +6087,57 @@ define <2 x double> @test_v4f64_ogt2_s(<2 x double> %a, <2 x double> %b) #0 {
ret <2 x double> %res
}
+define <2 x float> @test_v2f32_ogt2_s(<2 x float> %a, <2 x float> %b) #0 {
+; SSE-32-LABEL: test_v2f32_ogt2_s:
+; SSE-32: # %bb.0:
+; SSE-32-NEXT: maxps %xmm1, %xmm0
+; SSE-32-NEXT: retl
+;
+; SSE-64-LABEL: test_v2f32_ogt2_s:
+; SSE-64: # %bb.0:
+; SSE-64-NEXT: maxps %xmm1, %xmm0
+; SSE-64-NEXT: retq
+;
+; AVX-32-LABEL: test_v2f32_ogt2_s:
+; AVX-32: # %bb.0:
+; AVX-32-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX-32-NEXT: retl
+;
+; AVX-64-LABEL: test_v2f32_ogt2_s:
+; AVX-64: # %bb.0:
+; AVX-64-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX-64-NEXT: retq
+;
+; AVX512-32-LABEL: test_v2f32_ogt2_s:
+; AVX512-32: # %bb.0:
+; AVX512-32-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX512-32-NEXT: retl
+;
+; AVX512-64-LABEL: test_v2f32_ogt2_s:
+; AVX512-64: # %bb.0:
+; AVX512-64-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX512-64-NEXT: retq
+;
+; AVX512F-32-LABEL: test_v2f32_ogt2_s:
+; AVX512F-32: # %bb.0:
+; AVX512F-32-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX512F-32-NEXT: retl
+;
+; AVX512F-64-LABEL: test_v2f32_ogt2_s:
+; AVX512F-64: # %bb.0:
+; AVX512F-64-NEXT: vmaxps %xmm1, %xmm0, %xmm0
+; AVX512F-64-NEXT: retq
+ %cond = call <2 x i1> @llvm.experimental.constrained.fcmps.v2f32(
+ <2 x float> %a, <2 x float> %b, metadata !"ogt",
+ metadata !"fpexcept.strict")
+ %res = select <2 x i1> %cond, <2 x float> %a, <2 x float> %b
+ ret <2 x float> %res
+}
----------------
phoebewang wrote:
Done.
https://github.com/llvm/llvm-project/pull/119391
More information about the llvm-commits
mailing list