44; RUN: llc -mtriple=riscv64 -mattr=+d,+zfbfmin,+zvfbfmin,+v -target-abi=lp64d \
55; RUN: -verify-machineinstrs < %s | FileCheck %s
66
7- define bfloat @vpreduce_fmin_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
8- ; CHECK-LABEL: vpreduce_fmin_nxv4f16 :
7+ define bfloat @vpreduce_fmin_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
8+ ; CHECK-LABEL: vpreduce_fmin_nxv4bf16 :
99; CHECK: # %bb.0:
1010; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
1111; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -17,12 +17,12 @@ define bfloat @vpreduce_fmin_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %val,
1717; CHECK-NEXT: vfmv.f.s fa5, v8
1818; CHECK-NEXT: fcvt.bf16.s fa0, fa5
1919; CHECK-NEXT: ret
20- %s = call bfloat @llvm.vp.reduce.fmin.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
20+ %s = call bfloat @llvm.vp.reduce.fmin.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
2121 ret bfloat %s
2222}
2323
24- define bfloat @vpreduce_fmax_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
25- ; CHECK-LABEL: vpreduce_fmax_nxv4f16 :
24+ define bfloat @vpreduce_fmax_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
25+ ; CHECK-LABEL: vpreduce_fmax_nxv4bf16 :
2626; CHECK: # %bb.0:
2727; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
2828; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -34,12 +34,12 @@ define bfloat @vpreduce_fmax_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %val,
3434; CHECK-NEXT: vfmv.f.s fa5, v8
3535; CHECK-NEXT: fcvt.bf16.s fa0, fa5
3636; CHECK-NEXT: ret
37- %s = call bfloat @llvm.vp.reduce.fmax.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
37+ %s = call bfloat @llvm.vp.reduce.fmax.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
3838 ret bfloat %s
3939}
4040
41- define bfloat @vpreduce_fmin_nnan_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
42- ; CHECK-LABEL: vpreduce_fmin_nnan_nxv4f16 :
41+ define bfloat @vpreduce_fmin_nnan_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
42+ ; CHECK-LABEL: vpreduce_fmin_nnan_nxv4bf16 :
4343; CHECK: # %bb.0:
4444; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
4545; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -51,12 +51,12 @@ define bfloat @vpreduce_fmin_nnan_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %
5151; CHECK-NEXT: vfmv.f.s fa5, v8
5252; CHECK-NEXT: fcvt.bf16.s fa0, fa5
5353; CHECK-NEXT: ret
54- %s = call nnan bfloat @llvm.vp.reduce.fmin.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
54+ %s = call nnan bfloat @llvm.vp.reduce.fmin.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
5555 ret bfloat %s
5656}
5757
58- define bfloat @vpreduce_fmax_nnan_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
59- ; CHECK-LABEL: vpreduce_fmax_nnan_nxv4f16 :
58+ define bfloat @vpreduce_fmax_nnan_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
59+ ; CHECK-LABEL: vpreduce_fmax_nnan_nxv4bf16 :
6060; CHECK: # %bb.0:
6161; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
6262; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -68,12 +68,12 @@ define bfloat @vpreduce_fmax_nnan_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %
6868; CHECK-NEXT: vfmv.f.s fa5, v8
6969; CHECK-NEXT: fcvt.bf16.s fa0, fa5
7070; CHECK-NEXT: ret
71- %s = call nnan bfloat @llvm.vp.reduce.fmax.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
71+ %s = call nnan bfloat @llvm.vp.reduce.fmax.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
7272 ret bfloat %s
7373}
7474
75- define bfloat @vpreduce_fminimum_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
76- ; CHECK-LABEL: vpreduce_fminimum_nxv4f16 :
75+ define bfloat @vpreduce_fminimum_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
76+ ; CHECK-LABEL: vpreduce_fminimum_nxv4bf16 :
7777; CHECK: # %bb.0:
7878; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
7979; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -98,12 +98,12 @@ define bfloat @vpreduce_fminimum_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %v
9898; CHECK-NEXT: vfmv.f.s fa5, v8
9999; CHECK-NEXT: fcvt.bf16.s fa0, fa5
100100; CHECK-NEXT: ret
101- %s = call bfloat @llvm.vp.reduce.fminimum.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
101+ %s = call bfloat @llvm.vp.reduce.fminimum.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
102102 ret bfloat %s
103103}
104104
105- define bfloat @vpreduce_fmaximum_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
106- ; CHECK-LABEL: vpreduce_fmaximum_nxv4f16 :
105+ define bfloat @vpreduce_fmaximum_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
106+ ; CHECK-LABEL: vpreduce_fmaximum_nxv4bf16 :
107107; CHECK: # %bb.0:
108108; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
109109; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -128,12 +128,12 @@ define bfloat @vpreduce_fmaximum_nxv4f16(bfloat %start, <vscale x 4 x bfloat> %v
128128; CHECK-NEXT: vfmv.f.s fa5, v8
129129; CHECK-NEXT: fcvt.bf16.s fa0, fa5
130130; CHECK-NEXT: ret
131- %s = call bfloat @llvm.vp.reduce.fmaximum.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
131+ %s = call bfloat @llvm.vp.reduce.fmaximum.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
132132 ret bfloat %s
133133}
134134
135- define bfloat @vpreduce_fminimum_nnan_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
136- ; CHECK-LABEL: vpreduce_fminimum_nnan_nxv4f16 :
135+ define bfloat @vpreduce_fminimum_nnan_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
136+ ; CHECK-LABEL: vpreduce_fminimum_nnan_nxv4bf16 :
137137; CHECK: # %bb.0:
138138; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
139139; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -145,12 +145,12 @@ define bfloat @vpreduce_fminimum_nnan_nxv4f16(bfloat %start, <vscale x 4 x bfloa
145145; CHECK-NEXT: vfmv.f.s fa5, v8
146146; CHECK-NEXT: fcvt.bf16.s fa0, fa5
147147; CHECK-NEXT: ret
148- %s = call nnan bfloat @llvm.vp.reduce.fminimum.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
148+ %s = call nnan bfloat @llvm.vp.reduce.fminimum.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
149149 ret bfloat %s
150150}
151151
152- define bfloat @vpreduce_fmaximum_nnan_nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
153- ; CHECK-LABEL: vpreduce_fmaximum_nnan_nxv4f16 :
152+ define bfloat @vpreduce_fmaximum_nnan_nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 zeroext %evl ) {
153+ ; CHECK-LABEL: vpreduce_fmaximum_nnan_nxv4bf16 :
154154; CHECK: # %bb.0:
155155; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
156156; CHECK-NEXT: vfwcvtbf16.f.f.v v10, v8
@@ -162,6 +162,6 @@ define bfloat @vpreduce_fmaximum_nnan_nxv4f16(bfloat %start, <vscale x 4 x bfloa
162162; CHECK-NEXT: vfmv.f.s fa5, v8
163163; CHECK-NEXT: fcvt.bf16.s fa0, fa5
164164; CHECK-NEXT: ret
165- %s = call nnan bfloat @llvm.vp.reduce.fmaximum.nxv4f16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
165+ %s = call nnan bfloat @llvm.vp.reduce.fmaximum.nxv4bf16 (bfloat %start , <vscale x 4 x bfloat> %val , <vscale x 4 x i1 > %m , i32 %evl )
166166 ret bfloat %s
167167}
0 commit comments