Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mono] Add SIMD intrinsics for Vector64/128 "All" and "Any" variants of GT/GE/LT/LE #65889

Merged

Conversation

simonrozsival
Copy link
Member

@simonrozsival simonrozsival commented Feb 25, 2022

Related to #64072

  • GreaterThanAll
  • GreaterThanAny
  • GreaterThanOrEqualAll
  • GreaterThanOrEqualAny
  • LessThanAll
  • LessThanAny
  • LessThanOrEqualAll
  • LessThanOrEqualAny

@simonrozsival simonrozsival requested a review from EgorBo as a code owner March 4, 2022 14:25
@@ -7736,6 +7736,10 @@ process_bb (EmitContext *ctx, MonoBasicBlock *bb)
values [ins->dreg] = LLVMConstNull (type_to_llvm_type (ctx, m_class_get_byval_arg (ins->klass)));
break;
}
case OP_XONES: {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: XONES is a confusing term

This means AllBitsSet where-as many users may interpret it as the integer 1.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OP_XONES is already in the repo, it just hasn't been implemented in mini-llvm so far

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I still felt it was important to call out. This is a generally confusing term and it might be worth considering doing a rename to avoid the confusion.

We explicitly avoided the term ones for the managed side in API review because it is people read it and think it refers to Create(1) (broadcast 1 to all elements) or Create(1, 1, ..., 1) (explicitly set each element to 1).

Where-as it actually produces something that is akin to the bitwise pattern ~0.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Thanks for the explanation and context.

@simonrozsival simonrozsival merged commit cbcc616 into dotnet:main Mar 9, 2022
@simonrozsival simonrozsival deleted the vector-intrinsics-gt-lt-all-any branch March 9, 2022 14:24
@ghost ghost locked as resolved and limited conversation to collaborators Apr 8, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants