-
Notifications
You must be signed in to change notification settings - Fork 300
intrinsic-test: Adding x86 behavioural testing.
#1894
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
intrinsic-test: Adding x86 behavioural testing.
#1894
Conversation
41db5a8 to
5fc0f3b
Compare
| match str::parse::<u32>(etype_processed.as_str()) { | ||
| Ok(value) => data.bit_len = Some(value), | ||
| Err(_) => { | ||
| data.bit_len = match data.kind() { | ||
| TypeKind::Char(_) => Some(8), | ||
| TypeKind::BFloat => Some(16), | ||
| TypeKind::Int(_) => Some(32), | ||
| TypeKind::Float => Some(32), | ||
| _ => None, | ||
| }; | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are only some type kinds covered here? Maybe this could be a method on TypeKind?
9e28106 to
111cd5d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you should rebase on top of the upstream master branch instead of merging it in. That keeps the git history clean.
ci/run.sh
Outdated
| x86_64-unknown-linux-gnu*) | ||
| CPPFLAGS="${TEST_CPPFLAGS}" RUSTFLAGS="${HOST_RUSTFLAGS}" RUST_LOG=warn \ | ||
| cargo run "${INTRINSIC_TEST}" "${PROFILE}" \ | ||
| --bin intrinsic-test -- intrinsics_data/x86-intel.xml \ | ||
| --runner "${TEST_RUNNER}" \ | ||
| --cppcompiler "${TEST_CXX_COMPILER}" \ | ||
| --target "${TARGET}" | ||
| ;; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we'll have to see how to do this exactly, but we want to split these out of the main CI job to speed it up
f3f87f2 to
2ec747c
Compare
2ec747c to
a8313d0
Compare
|
Seems like the CI run at this point failed due to this error. I'll retry shortly: |
126a3ce to
e79129a
Compare
|
Can you rebase this (and remove the merge commits) sometime? That would make it a lot easier to see what has actually changed. Also, why do you push to then have CI fail? Running this locally is a lot faster than having CI do it, because you can skip the earlier steps and run just the intrinsic tests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, wait, it probably is up to date? it's just that xml file is enormous. that's crazy. Should we like, try to trim that down?
|
@folkertdev I've been syncing using the below command whenever I'm updating from master: git rebase masterAm I doing it correctly? |
|
About the XML file specification, may I ask what "trim down" means? |
|
depends a bit on your git setup, but it seems to work allright. I was just confused by the enormous number of lines changed, but that's all due to that XML file. |
|
What i mean is, could we process that XML file into a smaller XML file that only stores what we need? That would reduce the size of the repo (not sure how big that file is, maybe it compresses well?) and the speed of the intrinsic tests. There are risks too, e.g. what we generate could go out of date with the official XML file. So maybe it's fine this way. |
|
Ahh, makes sense. I think it might be best to keep the source of truth as unchanged as possible, since there is no direct way to obtain the sources sometimes. For example, the XML file originally existed in the The entire XML data can be found stored as a hardcoded string that is assigned to a variable in a JS file. |
being killed. Also separated declarations and definitions for C++ testfiles.
to C++ version of the same.
instead of letting C++ do it (and potentially change the bits)
same (during typecasting)
like integer to float or vice versa)
to be cast to float16_t because the bits are stored in the lower half of the type)
variants for compatibility with the Rust version
to char 2. including variable names in template strings instead of passing them as arguments to macros
0998d50 to
efbf8ed
Compare
`intrinsic-test`
efbf8ed to
41357a0
Compare
|
Just rebased and added |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Allright, I think this looks good now. Thanks for the massive amount of work that went into this PR!
Context
This is a redo of PR #1814, since a lot of details have changed with PRs #1863, #1862, #1861, #1852.
r? @folkertdev
cc: @Amanieu