You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
+47-17Lines changed: 47 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -76,7 +76,9 @@ define <vscale x 1 x half> @vfmax_vv_nxv1f16_unmasked(<vscale x 1 x half> %va, <
76
76
; ZVFHMIN-NEXT: vsetvli a0, zero, e16, mf4, ta, ma
77
77
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
78
78
; ZVFHMIN-NEXT: ret
79
-
%v = call <vscale x 1 x half> @llvm.vp.maximum.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> splat (i1true), i32%evl)
79
+
%head = insertelement <vscale x 1 x i1> poison, i1true, i320
80
+
%m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
81
+
%v = call <vscale x 1 x half> @llvm.vp.maximum.nxv1f16(<vscale x 1 x half> %va, <vscale x 1 x half> %vb, <vscale x 1 x i1> %m, i32%evl)
80
82
ret <vscale x 1 x half> %v
81
83
}
82
84
@@ -148,7 +150,9 @@ define <vscale x 2 x half> @vfmax_vv_nxv2f16_unmasked(<vscale x 2 x half> %va, <
148
150
; ZVFHMIN-NEXT: vsetvli a0, zero, e16, mf2, ta, ma
149
151
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v9
150
152
; ZVFHMIN-NEXT: ret
151
-
%v = call <vscale x 2 x half> @llvm.vp.maximum.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, <vscale x 2 x i1> splat (i1true), i32%evl)
153
+
%head = insertelement <vscale x 2 x i1> poison, i1true, i320
154
+
%m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
155
+
%v = call <vscale x 2 x half> @llvm.vp.maximum.nxv2f16(<vscale x 2 x half> %va, <vscale x 2 x half> %vb, <vscale x 2 x i1> %m, i32%evl)
152
156
ret <vscale x 2 x half> %v
153
157
}
154
158
@@ -222,7 +226,9 @@ define <vscale x 4 x half> @vfmax_vv_nxv4f16_unmasked(<vscale x 4 x half> %va, <
222
226
; ZVFHMIN-NEXT: vsetvli a0, zero, e16, m1, ta, ma
223
227
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v10
224
228
; ZVFHMIN-NEXT: ret
225
-
%v = call <vscale x 4 x half> @llvm.vp.maximum.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, <vscale x 4 x i1> splat (i1true), i32%evl)
229
+
%head = insertelement <vscale x 4 x i1> poison, i1true, i320
230
+
%m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
231
+
%v = call <vscale x 4 x half> @llvm.vp.maximum.nxv4f16(<vscale x 4 x half> %va, <vscale x 4 x half> %vb, <vscale x 4 x i1> %m, i32%evl)
226
232
ret <vscale x 4 x half> %v
227
233
}
228
234
@@ -298,7 +304,9 @@ define <vscale x 8 x half> @vfmax_vv_nxv8f16_unmasked(<vscale x 8 x half> %va, <
298
304
; ZVFHMIN-NEXT: vsetvli a0, zero, e16, m2, ta, ma
299
305
; ZVFHMIN-NEXT: vfncvt.f.f.w v8, v12
300
306
; ZVFHMIN-NEXT: ret
301
-
%v = call <vscale x 8 x half> @llvm.vp.maximum.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> splat (i1true), i32%evl)
307
+
%head = insertelement <vscale x 8 x i1> poison, i1true, i320
308
+
%m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
309
+
%v = call <vscale x 8 x half> @llvm.vp.maximum.nxv8f16(<vscale x 8 x half> %va, <vscale x 8 x half> %vb, <vscale x 8 x i1> %m, i32%evl)
302
310
ret <vscale x 8 x half> %v
303
311
}
304
312
@@ -400,7 +408,9 @@ define <vscale x 16 x half> @vfmax_vv_nxv16f16_unmasked(<vscale x 16 x half> %va
400
408
; ZVFHMIN-NEXT: add sp, sp, a0
401
409
; ZVFHMIN-NEXT: addi sp, sp, 16
402
410
; ZVFHMIN-NEXT: ret
403
-
%v = call <vscale x 16 x half> @llvm.vp.maximum.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, <vscale x 16 x i1> splat (i1true), i32%evl)
411
+
%head = insertelement <vscale x 16 x i1> poison, i1true, i320
412
+
%m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
413
+
%v = call <vscale x 16 x half> @llvm.vp.maximum.nxv16f16(<vscale x 16 x half> %va, <vscale x 16 x half> %vb, <vscale x 16 x i1> %m, i32%evl)
404
414
ret <vscale x 16 x half> %v
405
415
}
406
416
@@ -616,15 +626,15 @@ define <vscale x 32 x half> @vfmax_vv_nxv32f16_unmasked(<vscale x 32 x half> %va
@@ -705,7 +715,9 @@ define <vscale x 32 x half> @vfmax_vv_nxv32f16_unmasked(<vscale x 32 x half> %va
705
715
; ZVFHMIN-NEXT: add sp, sp, a0
706
716
; ZVFHMIN-NEXT: addi sp, sp, 16
707
717
; ZVFHMIN-NEXT: ret
708
-
%v = call <vscale x 32 x half> @llvm.vp.maximum.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, <vscale x 32 x i1> splat (i1true), i32%evl)
718
+
%head = insertelement <vscale x 32 x i1> poison, i1true, i320
719
+
%m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
720
+
%v = call <vscale x 32 x half> @llvm.vp.maximum.nxv32f16(<vscale x 32 x half> %va, <vscale x 32 x half> %vb, <vscale x 32 x i1> %m, i32%evl)
709
721
ret <vscale x 32 x half> %v
710
722
}
711
723
@@ -739,7 +751,9 @@ define <vscale x 1 x float> @vfmax_vv_nxv1f32_unmasked(<vscale x 1 x float> %va,
739
751
; CHECK-NEXT: vmerge.vvm v8, v9, v8, v0
740
752
; CHECK-NEXT: vfmax.vv v8, v8, v11
741
753
; CHECK-NEXT: ret
742
-
%v = call <vscale x 1 x float> @llvm.vp.maximum.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, <vscale x 1 x i1> splat (i1true), i32%evl)
754
+
%head = insertelement <vscale x 1 x i1> poison, i1true, i320
755
+
%m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
756
+
%v = call <vscale x 1 x float> @llvm.vp.maximum.nxv1f32(<vscale x 1 x float> %va, <vscale x 1 x float> %vb, <vscale x 1 x i1> %m, i32%evl)
743
757
ret <vscale x 1 x float> %v
744
758
}
745
759
@@ -773,7 +787,9 @@ define <vscale x 2 x float> @vfmax_vv_nxv2f32_unmasked(<vscale x 2 x float> %va,
773
787
; CHECK-NEXT: vmerge.vvm v8, v9, v8, v0
774
788
; CHECK-NEXT: vfmax.vv v8, v8, v11
775
789
; CHECK-NEXT: ret
776
-
%v = call <vscale x 2 x float> @llvm.vp.maximum.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, <vscale x 2 x i1> splat (i1true), i32%evl)
790
+
%head = insertelement <vscale x 2 x i1> poison, i1true, i320
791
+
%m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
792
+
%v = call <vscale x 2 x float> @llvm.vp.maximum.nxv2f32(<vscale x 2 x float> %va, <vscale x 2 x float> %vb, <vscale x 2 x i1> %m, i32%evl)
777
793
ret <vscale x 2 x float> %v
778
794
}
779
795
@@ -809,7 +825,9 @@ define <vscale x 4 x float> @vfmax_vv_nxv4f32_unmasked(<vscale x 4 x float> %va,
809
825
; CHECK-NEXT: vmerge.vvm v8, v10, v8, v0
810
826
; CHECK-NEXT: vfmax.vv v8, v8, v14
811
827
; CHECK-NEXT: ret
812
-
%v = call <vscale x 4 x float> @llvm.vp.maximum.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, <vscale x 4 x i1> splat (i1true), i32%evl)
828
+
%head = insertelement <vscale x 4 x i1> poison, i1true, i320
829
+
%m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
830
+
%v = call <vscale x 4 x float> @llvm.vp.maximum.nxv4f32(<vscale x 4 x float> %va, <vscale x 4 x float> %vb, <vscale x 4 x i1> %m, i32%evl)
813
831
ret <vscale x 4 x float> %v
814
832
}
815
833
@@ -845,7 +863,9 @@ define <vscale x 8 x float> @vfmax_vv_nxv8f32_unmasked(<vscale x 8 x float> %va,
845
863
; CHECK-NEXT: vmerge.vvm v8, v12, v8, v0
846
864
; CHECK-NEXT: vfmax.vv v8, v8, v20
847
865
; CHECK-NEXT: ret
848
-
%v = call <vscale x 8 x float> @llvm.vp.maximum.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, <vscale x 8 x i1> splat (i1true), i32%evl)
866
+
%head = insertelement <vscale x 8 x i1> poison, i1true, i320
867
+
%m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
868
+
%v = call <vscale x 8 x float> @llvm.vp.maximum.nxv8f32(<vscale x 8 x float> %va, <vscale x 8 x float> %vb, <vscale x 8 x i1> %m, i32%evl)
849
869
ret <vscale x 8 x float> %v
850
870
}
851
871
@@ -879,7 +899,9 @@ define <vscale x 1 x double> @vfmax_vv_nxv1f64_unmasked(<vscale x 1 x double> %v
879
899
; CHECK-NEXT: vmerge.vvm v8, v9, v8, v0
880
900
; CHECK-NEXT: vfmax.vv v8, v8, v11
881
901
; CHECK-NEXT: ret
882
-
%v = call <vscale x 1 x double> @llvm.vp.maximum.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> splat (i1true), i32%evl)
902
+
%head = insertelement <vscale x 1 x i1> poison, i1true, i320
903
+
%m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
904
+
%v = call <vscale x 1 x double> @llvm.vp.maximum.nxv1f64(<vscale x 1 x double> %va, <vscale x 1 x double> %vb, <vscale x 1 x i1> %m, i32%evl)
883
905
ret <vscale x 1 x double> %v
884
906
}
885
907
@@ -915,7 +937,9 @@ define <vscale x 2 x double> @vfmax_vv_nxv2f64_unmasked(<vscale x 2 x double> %v
915
937
; CHECK-NEXT: vmerge.vvm v8, v10, v8, v0
916
938
; CHECK-NEXT: vfmax.vv v8, v8, v14
917
939
; CHECK-NEXT: ret
918
-
%v = call <vscale x 2 x double> @llvm.vp.maximum.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, <vscale x 2 x i1> splat (i1true), i32%evl)
940
+
%head = insertelement <vscale x 2 x i1> poison, i1true, i320
941
+
%m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
942
+
%v = call <vscale x 2 x double> @llvm.vp.maximum.nxv2f64(<vscale x 2 x double> %va, <vscale x 2 x double> %vb, <vscale x 2 x i1> %m, i32%evl)
919
943
ret <vscale x 2 x double> %v
920
944
}
921
945
@@ -951,7 +975,9 @@ define <vscale x 4 x double> @vfmax_vv_nxv4f64_unmasked(<vscale x 4 x double> %v
951
975
; CHECK-NEXT: vmerge.vvm v8, v12, v8, v0
952
976
; CHECK-NEXT: vfmax.vv v8, v8, v20
953
977
; CHECK-NEXT: ret
954
-
%v = call <vscale x 4 x double> @llvm.vp.maximum.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, <vscale x 4 x i1> splat (i1true), i32%evl)
978
+
%head = insertelement <vscale x 4 x i1> poison, i1true, i320
979
+
%m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
980
+
%v = call <vscale x 4 x double> @llvm.vp.maximum.nxv4f64(<vscale x 4 x double> %va, <vscale x 4 x double> %vb, <vscale x 4 x i1> %m, i32%evl)
955
981
ret <vscale x 4 x double> %v
956
982
}
957
983
@@ -1000,7 +1026,9 @@ define <vscale x 8 x double> @vfmax_vv_nxv8f64_unmasked(<vscale x 8 x double> %v
1000
1026
; CHECK-NEXT: vmerge.vvm v8, v16, v8, v0
1001
1027
; CHECK-NEXT: vfmax.vv v8, v8, v24
1002
1028
; CHECK-NEXT: ret
1003
-
%v = call <vscale x 8 x double> @llvm.vp.maximum.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> splat (i1true), i32%evl)
1029
+
%head = insertelement <vscale x 8 x i1> poison, i1true, i320
1030
+
%m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1031
+
%v = call <vscale x 8 x double> @llvm.vp.maximum.nxv8f64(<vscale x 8 x double> %va, <vscale x 8 x double> %vb, <vscale x 8 x i1> %m, i32%evl)
1004
1032
ret <vscale x 8 x double> %v
1005
1033
}
1006
1034
@@ -1210,6 +1238,8 @@ define <vscale x 16 x double> @vfmax_vv_nxv16f64_unmasked(<vscale x 16 x double>
1210
1238
; CHECK-NEXT: add sp, sp, a0
1211
1239
; CHECK-NEXT: addi sp, sp, 16
1212
1240
; CHECK-NEXT: ret
1213
-
%v = call <vscale x 16 x double> @llvm.vp.maximum.nxv16f64(<vscale x 16 x double> %va, <vscale x 16 x double> %vb, <vscale x 16 x i1> splat (i1true), i32%evl)
1241
+
%head = insertelement <vscale x 16 x i1> poison, i1true, i320
1242
+
%m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
1243
+
%v = call <vscale x 16 x double> @llvm.vp.maximum.nxv16f64(<vscale x 16 x double> %va, <vscale x 16 x double> %vb, <vscale x 16 x i1> %m, i32%evl)
0 commit comments