83 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx -enable-no-nans-fp-math | FileCheck %s3 4define <2 x double> @maxpd(<2 x double> %x, <2 x double> %y) {5; CHECK-LABEL: maxpd:6; CHECK: # %bb.0:7; CHECK-NEXT: vmaxpd %xmm1, %xmm0, %xmm08; CHECK-NEXT: retq9 %max_is_x = fcmp oge <2 x double> %x, %y10 %max = select <2 x i1> %max_is_x, <2 x double> %x, <2 x double> %y11 ret <2 x double> %max12}13 14define <2 x double> @minpd(<2 x double> %x, <2 x double> %y) {15; CHECK-LABEL: minpd:16; CHECK: # %bb.0:17; CHECK-NEXT: vminpd %xmm1, %xmm0, %xmm018; CHECK-NEXT: retq19 %min_is_x = fcmp ole <2 x double> %x, %y20 %min = select <2 x i1> %min_is_x, <2 x double> %x, <2 x double> %y21 ret <2 x double> %min22}23 24define <4 x float> @maxps(<4 x float> %x, <4 x float> %y) {25; CHECK-LABEL: maxps:26; CHECK: # %bb.0:27; CHECK-NEXT: vmaxps %xmm1, %xmm0, %xmm028; CHECK-NEXT: retq29 %max_is_x = fcmp oge <4 x float> %x, %y30 %max = select <4 x i1> %max_is_x, <4 x float> %x, <4 x float> %y31 ret <4 x float> %max32}33 34define <4 x float> @minps(<4 x float> %x, <4 x float> %y) {35; CHECK-LABEL: minps:36; CHECK: # %bb.0:37; CHECK-NEXT: vminps %xmm1, %xmm0, %xmm038; CHECK-NEXT: retq39 %min_is_x = fcmp ole <4 x float> %x, %y40 %min = select <4 x i1> %min_is_x, <4 x float> %x, <4 x float> %y41 ret <4 x float> %min42}43 44define <4 x double> @vmaxpd(<4 x double> %x, <4 x double> %y) {45; CHECK-LABEL: vmaxpd:46; CHECK: # %bb.0:47; CHECK-NEXT: vmaxpd %ymm1, %ymm0, %ymm048; CHECK-NEXT: retq49 %max_is_x = fcmp oge <4 x double> %x, %y50 %max = select <4 x i1> %max_is_x, <4 x double> %x, <4 x double> %y51 ret <4 x double> %max52}53 54define <4 x double> @vminpd(<4 x double> %x, <4 x double> %y) {55; CHECK-LABEL: vminpd:56; CHECK: # %bb.0:57; CHECK-NEXT: vminpd %ymm1, %ymm0, %ymm058; CHECK-NEXT: retq59 %min_is_x = fcmp ole <4 x double> %x, %y60 %min = select <4 x i1> %min_is_x, <4 x double> %x, <4 x double> %y61 ret <4 x double> %min62}63 64define <8 x float> @vmaxps(<8 x float> %x, <8 x float> %y) {65; CHECK-LABEL: vmaxps:66; CHECK: # %bb.0:67; CHECK-NEXT: vmaxps %ymm1, %ymm0, %ymm068; CHECK-NEXT: retq69 %max_is_x = fcmp oge <8 x float> %x, %y70 %max = select <8 x i1> %max_is_x, <8 x float> %x, <8 x float> %y71 ret <8 x float> %max72}73 74define <8 x float> @vminps(<8 x float> %x, <8 x float> %y) {75; CHECK-LABEL: vminps:76; CHECK: # %bb.0:77; CHECK-NEXT: vminps %ymm1, %ymm0, %ymm078; CHECK-NEXT: retq79 %min_is_x = fcmp ole <8 x float> %x, %y80 %min = select <8 x i1> %min_is_x, <8 x float> %x, <8 x float> %y81 ret <8 x float> %min82}83