Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit 8277ad7

Browse files
committed
[X86] Adding a test point for PR34149 'Suboptimal codegen for "fast" minnum and maxnum'
Differential Revision: https://reviews.llvm.org/D37614 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312778 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 6b1b542 commit 8277ad7

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

test/CodeGen/X86/pr34149.ll

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2+
3+
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell | FileCheck %s
4+
5+
declare <4 x double> @llvm.minnum.v4f64(<4 x double> %x, <4 x double> %y)
6+
declare <4 x double> @llvm.maxnum.v4f64(<4 x double> %x, <4 x double> %y)
7+
8+
define <4 x double> @via_minnum(<4 x double> %x, <4 x double> %y) {
9+
; CHECK-LABEL: via_minnum:
10+
; CHECK: # BB#0:
11+
; CHECK-NEXT: vminpd %ymm0, %ymm1, %ymm2
12+
; CHECK-NEXT: vcmpunordpd %ymm0, %ymm0, %ymm0
13+
; CHECK-NEXT: vblendvpd %ymm0, %ymm1, %ymm2, %ymm0
14+
; CHECK-NEXT: retq
15+
%z = call fast <4 x double> @llvm.minnum.v4f64(<4 x double> %x, <4 x double> %y) readnone
16+
ret <4 x double> %z
17+
}
18+
19+
define <4 x double> @via_maxnum(<4 x double> %x, <4 x double> %y) {
20+
; CHECK-LABEL: via_maxnum:
21+
; CHECK: # BB#0:
22+
; CHECK-NEXT: vmaxpd %ymm0, %ymm1, %ymm2
23+
; CHECK-NEXT: vcmpunordpd %ymm0, %ymm0, %ymm0
24+
; CHECK-NEXT: vblendvpd %ymm0, %ymm1, %ymm2, %ymm0
25+
; CHECK-NEXT: retq
26+
%z = call fast <4 x double> @llvm.maxnum.v4f64(<4 x double> %x, <4 x double> %y) readnone
27+
ret <4 x double> %z
28+
}
29+
30+
define <4 x double> @via_fcmp(<4 x double> %x, <4 x double> %y) {
31+
; CHECK-LABEL: via_fcmp:
32+
; CHECK: # BB#0:
33+
; CHECK-NEXT: vminpd %ymm0, %ymm1, %ymm0
34+
; CHECK-NEXT: retq
35+
%c = fcmp ule <4 x double> %x, %y
36+
%z = select <4 x i1> %c, <4 x double> %x, <4 x double> %y
37+
ret <4 x double> %z
38+
}
39+
40+

0 commit comments

Comments
 (0)