[llvm] 59762a0 - [RISCV] Add coverage for <3 x float> reduction with neutral start
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 29 12:21:49 PDT 2024
Author: Philip Reames
Date: 2024-08-29T12:21:35-07:00
New Revision: 59762a0ecf64cbf6ac20c41ae75666cd87519f26
URL: https://github.com/llvm/llvm-project/commit/59762a0ecf64cbf6ac20c41ae75666cd87519f26
DIFF: https://github.com/llvm/llvm-project/commit/59762a0ecf64cbf6ac20c41ae75666cd87519f26.diff
LOG: [RISCV] Add coverage for <3 x float> reduction with neutral start
We can do slightly better on the neutral value when we have nsz.
Added:
Modified:
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
index 566c9070eab512..5d5807cbadbad5 100644
--- a/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
+++ b/llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
@@ -489,6 +489,51 @@ define float @vreduce_ord_fadd_v7f32(ptr %x, float %s) {
ret float %red
}
+define float @vreduce_fadd_v7f32_neutralstart(ptr %x) {
+; CHECK-LABEL: vreduce_fadd_v7f32_neutralstart:
+; CHECK: # %bb.0:
+; CHECK-NEXT: vsetivli zero, 7, e32, m2, ta, ma
+; CHECK-NEXT: vle32.v v8, (a0)
+; CHECK-NEXT: lui a0, 524288
+; CHECK-NEXT: vmv.s.x v10, a0
+; CHECK-NEXT: vfredusum.vs v8, v8, v10
+; CHECK-NEXT: vfmv.f.s fa0, v8
+; CHECK-NEXT: ret
+ %v = load <7 x float>, ptr %x
+ %red = call reassoc float @llvm.vector.reduce.fadd.v7f32(float -0.0, <7 x float> %v)
+ ret float %red
+}
+
+define float @vreduce_fadd_v7f32_neutralstart_nsz(ptr %x) {
+; CHECK-LABEL: vreduce_fadd_v7f32_neutralstart_nsz:
+; CHECK: # %bb.0:
+; CHECK-NEXT: vsetivli zero, 7, e32, m2, ta, ma
+; CHECK-NEXT: vle32.v v8, (a0)
+; CHECK-NEXT: lui a0, 524288
+; CHECK-NEXT: vmv.s.x v10, a0
+; CHECK-NEXT: vfredosum.vs v8, v8, v10
+; CHECK-NEXT: vfmv.f.s fa0, v8
+; CHECK-NEXT: ret
+ %v = load <7 x float>, ptr %x
+ %red = call nsz float @llvm.vector.reduce.fadd.v7f32(float -0.0, <7 x float> %v)
+ ret float %red
+}
+
+define float @vreduce_fadd_v7f32_neutralstart_fast(ptr %x) {
+; CHECK-LABEL: vreduce_fadd_v7f32_neutralstart_fast:
+; CHECK: # %bb.0:
+; CHECK-NEXT: vsetivli zero, 7, e32, m2, ta, ma
+; CHECK-NEXT: vle32.v v8, (a0)
+; CHECK-NEXT: lui a0, 524288
+; CHECK-NEXT: vmv.s.x v10, a0
+; CHECK-NEXT: vfredusum.vs v8, v8, v10
+; CHECK-NEXT: vfmv.f.s fa0, v8
+; CHECK-NEXT: ret
+ %v = load <7 x float>, ptr %x
+ %red = call fast float @llvm.vector.reduce.fadd.v7f32(float -0.0, <7 x float> %v)
+ ret float %red
+}
+
declare float @llvm.vector.reduce.fadd.v8f32(float, <8 x float>)
@@ -1683,12 +1728,12 @@ define float @vreduce_fminimum_v2f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB104_2
+; CHECK-NEXT: beqz a0, .LBB107_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB104_2:
+; CHECK-NEXT: .LBB107_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -1719,12 +1764,12 @@ define float @vreduce_fminimum_v4f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB106_2
+; CHECK-NEXT: beqz a0, .LBB109_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB106_2:
+; CHECK-NEXT: .LBB109_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -1758,12 +1803,12 @@ define float @vreduce_fminimum_v7f32(ptr %x) {
; CHECK-NEXT: vsetivli zero, 7, e32, m2, ta, ma
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10, v0.t
-; CHECK-NEXT: beqz a0, .LBB108_2
+; CHECK-NEXT: beqz a0, .LBB111_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB108_2:
+; CHECK-NEXT: .LBB111_2:
; CHECK-NEXT: lui a0, 522240
; CHECK-NEXT: vmv.s.x v10, a0
; CHECK-NEXT: vfredmin.vs v8, v8, v10
@@ -1798,12 +1843,12 @@ define float @vreduce_fminimum_v8f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10
-; CHECK-NEXT: beqz a0, .LBB110_2
+; CHECK-NEXT: beqz a0, .LBB113_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB110_2:
+; CHECK-NEXT: .LBB113_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -1834,12 +1879,12 @@ define float @vreduce_fminimum_v16f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v12, v8, v8
; CHECK-NEXT: vcpop.m a0, v12
-; CHECK-NEXT: beqz a0, .LBB112_2
+; CHECK-NEXT: beqz a0, .LBB115_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB112_2:
+; CHECK-NEXT: .LBB115_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -1871,12 +1916,12 @@ define float @vreduce_fminimum_v32f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB114_2
+; CHECK-NEXT: beqz a0, .LBB117_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB114_2:
+; CHECK-NEXT: .LBB117_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -1926,15 +1971,15 @@ define float @vreduce_fminimum_v64f32(ptr %x) {
; CHECK-NEXT: vfmin.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB116_2
+; CHECK-NEXT: beqz a0, .LBB119_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
-; CHECK-NEXT: j .LBB116_3
-; CHECK-NEXT: .LBB116_2:
+; CHECK-NEXT: j .LBB119_3
+; CHECK-NEXT: .LBB119_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB116_3:
+; CHECK-NEXT: .LBB119_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: add sp, sp, a0
@@ -2048,15 +2093,15 @@ define float @vreduce_fminimum_v128f32(ptr %x) {
; CHECK-NEXT: vfmin.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB118_2
+; CHECK-NEXT: beqz a0, .LBB121_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
-; CHECK-NEXT: j .LBB118_3
-; CHECK-NEXT: .LBB118_2:
+; CHECK-NEXT: j .LBB121_3
+; CHECK-NEXT: .LBB121_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB118_3:
+; CHECK-NEXT: .LBB121_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: mv a1, a0
@@ -2102,12 +2147,12 @@ define double @vreduce_fminimum_v2f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB120_2
+; CHECK-NEXT: beqz a0, .LBB123_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI120_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI120_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI123_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI123_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB120_2:
+; CHECK-NEXT: .LBB123_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2138,12 +2183,12 @@ define double @vreduce_fminimum_v4f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10
-; CHECK-NEXT: beqz a0, .LBB122_2
+; CHECK-NEXT: beqz a0, .LBB125_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI122_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI122_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI125_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI125_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB122_2:
+; CHECK-NEXT: .LBB125_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2174,12 +2219,12 @@ define double @vreduce_fminimum_v8f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v12, v8, v8
; CHECK-NEXT: vcpop.m a0, v12
-; CHECK-NEXT: beqz a0, .LBB124_2
+; CHECK-NEXT: beqz a0, .LBB127_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI124_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI124_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI127_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI127_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB124_2:
+; CHECK-NEXT: .LBB127_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2210,12 +2255,12 @@ define double @vreduce_fminimum_v16f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB126_2
+; CHECK-NEXT: beqz a0, .LBB129_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI126_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI126_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI129_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI129_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB126_2:
+; CHECK-NEXT: .LBB129_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2263,15 +2308,15 @@ define double @vreduce_fminimum_v32f64(ptr %x) {
; CHECK-NEXT: vfmin.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB128_2
+; CHECK-NEXT: beqz a0, .LBB131_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI128_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI128_0)(a0)
-; CHECK-NEXT: j .LBB128_3
-; CHECK-NEXT: .LBB128_2:
+; CHECK-NEXT: lui a0, %hi(.LCPI131_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI131_0)(a0)
+; CHECK-NEXT: j .LBB131_3
+; CHECK-NEXT: .LBB131_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB128_3:
+; CHECK-NEXT: .LBB131_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: add sp, sp, a0
@@ -2383,15 +2428,15 @@ define double @vreduce_fminimum_v64f64(ptr %x) {
; CHECK-NEXT: vfmin.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB130_2
+; CHECK-NEXT: beqz a0, .LBB133_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI130_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI130_0)(a0)
-; CHECK-NEXT: j .LBB130_3
-; CHECK-NEXT: .LBB130_2:
+; CHECK-NEXT: lui a0, %hi(.LCPI133_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI133_0)(a0)
+; CHECK-NEXT: j .LBB133_3
+; CHECK-NEXT: .LBB133_2:
; CHECK-NEXT: vfredmin.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB130_3:
+; CHECK-NEXT: .LBB133_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: mv a1, a0
@@ -2436,12 +2481,12 @@ define float @vreduce_fmaximum_v2f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB132_2
+; CHECK-NEXT: beqz a0, .LBB135_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB132_2:
+; CHECK-NEXT: .LBB135_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2472,12 +2517,12 @@ define float @vreduce_fmaximum_v4f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB134_2
+; CHECK-NEXT: beqz a0, .LBB137_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB134_2:
+; CHECK-NEXT: .LBB137_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2511,12 +2556,12 @@ define float @vreduce_fmaximum_v7f32(ptr %x) {
; CHECK-NEXT: vsetivli zero, 7, e32, m2, ta, ma
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10, v0.t
-; CHECK-NEXT: beqz a0, .LBB136_2
+; CHECK-NEXT: beqz a0, .LBB139_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB136_2:
+; CHECK-NEXT: .LBB139_2:
; CHECK-NEXT: lui a0, 1046528
; CHECK-NEXT: vmv.s.x v10, a0
; CHECK-NEXT: vfredmax.vs v8, v8, v10
@@ -2551,12 +2596,12 @@ define float @vreduce_fmaximum_v8f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10
-; CHECK-NEXT: beqz a0, .LBB138_2
+; CHECK-NEXT: beqz a0, .LBB141_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB138_2:
+; CHECK-NEXT: .LBB141_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2587,12 +2632,12 @@ define float @vreduce_fmaximum_v16f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v12, v8, v8
; CHECK-NEXT: vcpop.m a0, v12
-; CHECK-NEXT: beqz a0, .LBB140_2
+; CHECK-NEXT: beqz a0, .LBB143_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB140_2:
+; CHECK-NEXT: .LBB143_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2624,12 +2669,12 @@ define float @vreduce_fmaximum_v32f32(ptr %x) {
; CHECK-NEXT: vle32.v v8, (a0)
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB142_2
+; CHECK-NEXT: beqz a0, .LBB145_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB142_2:
+; CHECK-NEXT: .LBB145_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2679,15 +2724,15 @@ define float @vreduce_fmaximum_v64f32(ptr %x) {
; CHECK-NEXT: vfmax.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB144_2
+; CHECK-NEXT: beqz a0, .LBB147_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
-; CHECK-NEXT: j .LBB144_3
-; CHECK-NEXT: .LBB144_2:
+; CHECK-NEXT: j .LBB147_3
+; CHECK-NEXT: .LBB147_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB144_3:
+; CHECK-NEXT: .LBB147_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: add sp, sp, a0
@@ -2801,15 +2846,15 @@ define float @vreduce_fmaximum_v128f32(ptr %x) {
; CHECK-NEXT: vfmax.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB146_2
+; CHECK-NEXT: beqz a0, .LBB149_2
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: lui a0, 523264
; CHECK-NEXT: fmv.w.x fa0, a0
-; CHECK-NEXT: j .LBB146_3
-; CHECK-NEXT: .LBB146_2:
+; CHECK-NEXT: j .LBB149_3
+; CHECK-NEXT: .LBB149_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB146_3:
+; CHECK-NEXT: .LBB149_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: mv a1, a0
@@ -2855,12 +2900,12 @@ define double @vreduce_fmaximum_v2f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v9, v8, v8
; CHECK-NEXT: vcpop.m a0, v9
-; CHECK-NEXT: beqz a0, .LBB148_2
+; CHECK-NEXT: beqz a0, .LBB151_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI148_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI148_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI151_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI151_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB148_2:
+; CHECK-NEXT: .LBB151_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2891,12 +2936,12 @@ define double @vreduce_fmaximum_v4f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v10, v8, v8
; CHECK-NEXT: vcpop.m a0, v10
-; CHECK-NEXT: beqz a0, .LBB150_2
+; CHECK-NEXT: beqz a0, .LBB153_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI150_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI150_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI153_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI153_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB150_2:
+; CHECK-NEXT: .LBB153_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2927,12 +2972,12 @@ define double @vreduce_fmaximum_v8f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v12, v8, v8
; CHECK-NEXT: vcpop.m a0, v12
-; CHECK-NEXT: beqz a0, .LBB152_2
+; CHECK-NEXT: beqz a0, .LBB155_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI152_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI152_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI155_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI155_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB152_2:
+; CHECK-NEXT: .LBB155_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -2963,12 +3008,12 @@ define double @vreduce_fmaximum_v16f64(ptr %x) {
; CHECK-NEXT: vle64.v v8, (a0)
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB154_2
+; CHECK-NEXT: beqz a0, .LBB157_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI154_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI154_0)(a0)
+; CHECK-NEXT: lui a0, %hi(.LCPI157_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI157_0)(a0)
; CHECK-NEXT: ret
-; CHECK-NEXT: .LBB154_2:
+; CHECK-NEXT: .LBB157_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
; CHECK-NEXT: ret
@@ -3016,15 +3061,15 @@ define double @vreduce_fmaximum_v32f64(ptr %x) {
; CHECK-NEXT: vfmax.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB156_2
+; CHECK-NEXT: beqz a0, .LBB159_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI156_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI156_0)(a0)
-; CHECK-NEXT: j .LBB156_3
-; CHECK-NEXT: .LBB156_2:
+; CHECK-NEXT: lui a0, %hi(.LCPI159_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI159_0)(a0)
+; CHECK-NEXT: j .LBB159_3
+; CHECK-NEXT: .LBB159_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB156_3:
+; CHECK-NEXT: .LBB159_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: add sp, sp, a0
@@ -3136,15 +3181,15 @@ define double @vreduce_fmaximum_v64f64(ptr %x) {
; CHECK-NEXT: vfmax.vv v8, v8, v16
; CHECK-NEXT: vmfne.vv v16, v8, v8
; CHECK-NEXT: vcpop.m a0, v16
-; CHECK-NEXT: beqz a0, .LBB158_2
+; CHECK-NEXT: beqz a0, .LBB161_2
; CHECK-NEXT: # %bb.1:
-; CHECK-NEXT: lui a0, %hi(.LCPI158_0)
-; CHECK-NEXT: fld fa0, %lo(.LCPI158_0)(a0)
-; CHECK-NEXT: j .LBB158_3
-; CHECK-NEXT: .LBB158_2:
+; CHECK-NEXT: lui a0, %hi(.LCPI161_0)
+; CHECK-NEXT: fld fa0, %lo(.LCPI161_0)(a0)
+; CHECK-NEXT: j .LBB161_3
+; CHECK-NEXT: .LBB161_2:
; CHECK-NEXT: vfredmax.vs v8, v8, v8
; CHECK-NEXT: vfmv.f.s fa0, v8
-; CHECK-NEXT: .LBB158_3:
+; CHECK-NEXT: .LBB161_3:
; CHECK-NEXT: csrr a0, vlenb
; CHECK-NEXT: slli a0, a0, 3
; CHECK-NEXT: mv a1, a0
More information about the llvm-commits
mailing list