X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=openpower%2Fsv.mdwn;h=5c1eab37951c1eca4898e8f0cc5f27cfac881a70;hb=25a5e43d1bf11c960b46234cb01c412b584821f9;hp=6ab91dec5238ad6e83054d3403c74e318c4a360f;hpb=e53ef3ec54f65c25c93ab9e3e05d8dfa17d619a5;p=libreriscv.git diff --git a/openpower/sv.mdwn b/openpower/sv.mdwn index 6ab91dec5..5c1eab379 100644 --- a/openpower/sv.mdwn +++ b/openpower/sv.mdwn @@ -1,5 +1,9 @@ +[[!tag standards]] + # Simple-V Vectorisation for the OpenPOWER ISA +**SV is in DRAFT STATUS**. SV has not yet been submitted to the OpenPOWER Foundation ISA WG for review. + Fundamental design principles: @@ -9,7 +13,9 @@ Fundamental design principles: * Preserving the underlying scalar execution dependencies as if the for-loop had been expanded as actual scalar instructions (termed "preserving Program Order") * Augments ("tags") existing instructions, providing Vectorisation "context" rather than adding new ones. -* Does not modify or deviate from the underly scalar OpenPOWER ISA unless it provides significant performance or other advantage to do so in the Vector space (dropping XER.SO and OE=1 for example) +* Does not modify or deviate from the underlying scalar OpenPOWER ISA unless it provides significant performance or other advantage to do so in the Vector space (dropping XER.SO and OE=1 for example) +* Designed for Supercomputing: avoids creating significant sequential +dependency hazards, allowing high performance superscalar microarchitectures to be deployed. Advantages of these design principles: @@ -24,29 +30,47 @@ Advantages of these design principles: Pages being developed and examples * [[sv/overview]] explaining the basics. -* [[sv/predication]] +* [[sv/implementation]] implementation planning and coordination +* [[sv/svp64]] contains the packet-format *only* +* [[sv/setvl]] the Cray-style "Vector Length" instruction +* [[sv/predication]] discussion on predication concepts +* [[sv/cr_int_predication]] instructions needed for effective predication * [[sv/masked_vector_chaining]] * [[sv/discussion]] * [[sv/example_dep_matrices]] -* [[sv/prefix]] * [[sv/major_opcode_allocation]] * [[opcode_regs_deduped]] * [[sv/vector_swizzle]] +* [[sv/register_type_tags]] * [[sv/mv.swizzle]] * [[sv/mv.x]] +* [[sv/branches]] - SVP64 Conditional Branch behaviour: All/Some Vector CRs +* [[sv/cr_ops]] - SVP64 Condition Register ops: Guidelines + on Vectorisation of any v3.0B base operations which return + or modify a Condition Register bit or field. +* [[sv/fcvt]] FP Conversion (due to OpenPOWER Scalar FP32) +* [[sv/fclass]] detect class of FP numbers +* [[sv/int_fp_mv]] Move and convert GPR <-> FPR, needed for !VSX * [[sv/mv.vec]] move to and from vec2/3/4 -* [[sv/16_bit_compressed]] -* [[sv/toc_data_pointer]] -* [[sv/cr_int_predication]] -* [[sv/setvl]] -* [[sv/svp_rewrite]] -* [[sv/ldst]] -* [[sv/sprs]] +* [[sv/16_bit_compressed]] experimental +* [[sv/toc_data_pointer]] experimental +* [[sv/ldst]] Load and Store +* [[sv/sprs]] SPRs * [[sv/bitmanip]] +* [[sv/remap]] "Remapping" for Matrix Multiply and RGB "Structure Packing" +* [[sv/propagation]] Context propagation including svp64, swizzle and remap * [[sv/vector_ops]] Vector ops needed to make a "complete" Vector ISA * [[sv/av_opcodes]] scalar opcodes for Audio/Video +* [[sv/byteswap]] +* TODO: OpenPOWER [[openpower/transcendentals]] Additional links: * * [[simple_v_extension]] old (deprecated) version +* [[openpower/sv/llvm]] + +Obligatory Dilbert: + + +