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

simd std::remove #6322

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open

simd std::remove #6322

wants to merge 12 commits into from

Conversation

Johan511
Copy link
Contributor

added remove unseq by changing find call to unseq

Hari Hara Naveen S and others added 11 commits July 16, 2023 07:21
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
…for function call deduction)

Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
Signed-off-by: Hari Hara Naveen S <[email protected]>
@Johan511
Copy link
Contributor Author

Johan511 commented Aug 12, 2023

image

Seq vs unseq

@@ -34,8 +34,7 @@ namespace hpx::parallel::detail {
sequential_find_t<ExPolicy>, Iterator first, Sentinel last,
T const& value, Proj proj = Proj())
{
return util::loop_pred<
std::decay_t<hpx::execution::sequenced_policy>>(
return util::loop_pred<ExPolicy>(
Copy link
Member

Choose a reason for hiding this comment

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

Do you need to decay the ExPolicy here (and in other places)?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do we really need decay over here? ExPolicy is only being used for deducing if seq or unseq overload should be called. is_unseq<unseq_policy> should be true for both value and reference right?

Also, please note that this is branched from simd-find.

Copy link
Member

Choose a reason for hiding this comment

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

Well, you tell me. I was just asking the question without closer investigation.

Copy link
Contributor Author

@Johan511 Johan511 Aug 18, 2023

Choose a reason for hiding this comment

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

To the best of my knowledge, I don't believe we need to decay. I am unsure why it was being decayed previously. I assume is_unseq<unseq_policy>, is_unseq<unseq_policy&> and is_unseq<unseq_policy&&> all evaluate to true

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@hkaiser I have tried checking behaviour with/without std::decay_t. The correct overloads are called in both cases. I am unsure why std::decay_t is being used.

@Johan511 Johan511 changed the title Remove simd simd std::remove Aug 19, 2023
Signed-off-by: Hari Hara Naveen S <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants