Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.
/ druntime Public archive

Add overrides for __simd intrinsics#1900

Merged
dlang-bot merged 1 commit intodlang:masterfrom
ibuclaw:simdcasts
Aug 14, 2018
Merged

Add overrides for __simd intrinsics#1900
dlang-bot merged 1 commit intodlang:masterfrom
ibuclaw:simdcasts

Conversation

@ibuclaw
Copy link
Member

@ibuclaw ibuclaw commented Aug 13, 2017

This is blocking dlang/dmd#7065

@dlang-bot
Copy link
Contributor

dlang-bot commented Aug 13, 2017

Thanks for your pull request, @ibuclaw!

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub fetch digger
dub run digger -- build "master + druntime#1900"

@ibuclaw
Copy link
Member Author

ibuclaw commented Aug 13, 2017

Replaced with templates.

Can't add unittests because of https://issues.dlang.org/show_bug.cgi?id=17751

Copy link
Contributor

@wilzbach wilzbach left a comment

Choose a reason for hiding this comment

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

Looks reasonable to me, but I'm no expert on simD

@ibuclaw
Copy link
Member Author

ibuclaw commented Oct 10, 2017

Marking as blocked. I'll rebase and add unittests so the compiler ICE gets triggered (so that we'll know when dmd is fixed).

@MartinNowak is this fine from a high level design?

@WalterBright don't suppose you can have a look at the backens related ICE?

@WalterBright
Copy link
Member

I don't know what the rationale of this is. There's no bugzilla issue referenced, no explanation here, no comments in the code?

@ibuclaw
Copy link
Member Author

ibuclaw commented Oct 10, 2017

@WalterBright see dmd pr and linked bug there. I want to make it illegal to implicitly cast to void vector, but these intrinsics block the patch.

@dlang-bot dlang-bot added Needs Rebase needs a `git rebase` performed and removed Needs Rebase needs a `git rebase` performed labels Jan 1, 2018
@JinShil
Copy link
Contributor

JinShil commented Jan 4, 2018

Can't add unittests because of https://issues.dlang.org/show_bug.cgi?id=17751

Bug 17751 was fixed with dlang/dmd#7216. Is this still "Blocked"?

@ibuclaw
Copy link
Member Author

ibuclaw commented Jan 4, 2018

Fix turned my proposal into an error. If only dmd did constant propagation it would not be an error though...

The imm8 template should instead have the following signature.

pure @safe V1 simd(XMM opcode, ubyte imm8, V1, V2)(V1 op1, V2 op2)
    if (is(V1 == __vector) && is(V2 == __vector))

Copy link
Member

@PetarKirov PetarKirov left a comment

Choose a reason for hiding this comment

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

LGTM as well.

@PetarKirov
Copy link
Member

I've restarted CircleCI, hopefully the failure was intermittent.

@wilzbach
Copy link
Contributor

I've restarted CircleCI, hopefully the failure was intermittent.

Probably caused by a very old config file. I rebased to upstream/master. This typically helps for old PRs.

@dlang-bot dlang-bot merged commit 6f9925a into dlang:master Aug 14, 2018
@ibuclaw ibuclaw deleted the simdcasts branch August 14, 2018 17:25
@ibuclaw
Copy link
Member Author

ibuclaw commented Aug 14, 2018

Raises Eyebrows.

I think I will have to go through some of the tests though to make sure they are OK. I don't recall whether coverage is complete here, I can see a couple commented out tests.

I guess I can switch over the XMM test file in dmd to use these templates and see what blows up. :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants