Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Re-introduce some 64x2 instructions #101

Closed
@ngzhian

Description

@ngzhian

In #81, we wanted some performance data to support the inclusion of 64x2 instructions. In https://github.com/ngzhian/simd-benchmarks we documented steps to run benchmarks, and the results of running those benchmarks.

I would like to suggest the inclusion of 64x2 instructions back into the spec because we see real world workloads that benefit from these 64x2 instructions.

However, we don't see all 64x2 instructions getting the same usage and exposure, as such, we might want to consider including only a subset of these instructions.

Option 1, all 64x2 instructions 👀

  • i64x2.{splat,extract_lane,replace_lane}
  • i64x2.{add,sub,mul,neg}
  • i64x2.{shl,shr_s,shr_u}
  • i64x2.{any_true,all_true}
  • i64x2.{eq,le,lts,ltu,gts,gtu,les,leu,ges,geu}
  • i64x2.{abs,min,max}
  • i64x2.trunc_{s,u}/f64x2
  • f64x2.{splat,extract_lane,replace_lane}
  • f64x2.{add,sub,mul,neg}
  • f64x2.{div,sqrt}
  • f64x2.{shl,shr_s,shr_u}
  • f64x2.{any_true,all_true}
  • f64x2.{eq,le,lt,ge,gt}
  • f64x2.{abs,min,max}
  • f64x2.convert_{s,u}/i64x2

Option 2, only f64x2 instructions 🚀

  • all the f64x2 instructions (including conversions) from Option 1

Option 3, f64x2 instructions and common i64x2 instructions 🎉

  • all the f64x2 instructions (including conversions) from Option 1
  • i64x2.{splat,extract_lane,replace_lane}
  • i64x2.{add,sub,mul,neg}
  • i64x2.{shl,shr_s,shr_u}

I can put up a PR for changes to the docs when one of these options is decided.

Feel free to vote on this issue, eyes 👀 for 1, rocket 🚀 for 2, tada 🎉 for 3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions