RFR: 8327652: S390x: Implements SLP support

Amit Kumar amitkumar at openjdk.org
Fri Mar 8 06:30:00 UTC 2024


On Fri, 8 Mar 2024 05:05:31 GMT, Sidraya Jayagond <sjayagond at openjdk.org> wrote:

> This PR Adds SIMD support on s390x.

Changes requested by amitkumar (Committer).

src/hotspot/cpu/s390/assembler_s390.inline.hpp line 952:

> 950: inline void Assembler::z_vaccq(  VectorRegister v1, VectorRegister v2, VectorRegister v3)             {z_vacc(v1, v2, v3, VRET_QW); }      // vector element type 'Q'
> 951:                                                                                                                                            //
> 952: 

Suggestion:

src/hotspot/cpu/s390/s390.ad line 357:

> 355: 
> 356: 
> 357: 

Suggestion:

src/hotspot/cpu/s390/s390.ad line 760:

> 758: 
> 759: 
> 760: 

Suggestion:

src/hotspot/cpu/s390/s390.ad line 1209:

> 1207: 
> 1208:   // Between float regs & stack are the flags regs.
> 1209:   //assert(OptoReg::is_stack(reg) || reg < 64+64+128, "blow up if spilling flags");

Suggestion:

src/hotspot/cpu/s390/s390.ad line 1296:

> 1294:         C2_MacroAssembler _masm(cbuf);
> 1295:         __ z_vst(Rsrc,
> 1296:               Address(Z_SP, 0, dst_offset));

Suggestion:

        __ z_vst(Rsrc, Address(Z_SP, 0, dst_offset));

src/hotspot/cpu/s390/s390.ad line 1304:

> 1302:         C2_MacroAssembler _masm(cbuf);
> 1303:         __ z_vl(Rdst,
> 1304:               Address(Z_SP, 0, src_offset));

Suggestion:

        __ z_vl(Rdst, Address(Z_SP, 0, src_offset));

src/hotspot/cpu/s390/s390.ad line 11185:

> 11183:   ins_pipe(pipe_class_dummy);
> 11184: %}
> 11185: instruct vsub4I_reg(vecX dst, vecX src1, vecX src2) %{

Suggestion:

%}

instruct vsub4I_reg(vecX dst, vecX src1, vecX src2) %{

src/hotspot/cpu/s390/sharedRuntime_s390.cpp line 485:

> 483:     offset += reg_size;
> 484:   }
> 485:   assert(offset == frame_size_in_bytes, "consistency check");

Suggestion:

#ifdef ASSERT
  assert(offset == frame_size_in_bytes, "consistency check");
#endif // ASSERT

src/hotspot/cpu/s390/vm_version_s390.cpp line 108:

> 106:       FLAG_SET_ERGO(UseSFPV, true);
> 107:     } else {
> 108:       if (model_ix == 7 && UseSFPV) {

use else-if ?

src/hotspot/cpu/s390/vm_version_s390.cpp line 114:

> 112:     }
> 113:   } else {
> 114:     if (SuperwordUseVX) {

use else if ?

src/hotspot/share/adlc/output_c.cpp line 2366:

> 2364:     if (strcmp(rep_var,"$VectorSRegister") == 0)  return "as_VectorSRegister";
> 2365: #endif
> 2366: #if defined(S390)

can't we use `#elif` here ?

src/hotspot/share/opto/machnode.hpp line 146:

> 144:  }
> 145: #endif
> 146: #if defined(AARCH64)

can't we use #elif here ?

-------------

PR Review: https://git.openjdk.org/jdk/pull/18162#pullrequestreview-1924049036
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517180299
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517182113
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517182237
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517182442
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517178059
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517178206
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517183239
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517185503
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517214404
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517214506
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517188859
PR Review Comment: https://git.openjdk.org/jdk/pull/18162#discussion_r1517189185


More information about the hotspot-dev mailing list