Conversation
…md functions are now stable
…dlib This removes the last usage of stdsimd feature.
There was a problem hiding this comment.
This is much-appreciated maintenance--thank you! We generally need to audit our emitted code and see what has been stabilized and what the MSRV of transpiled code can now look like, and this helps toward that goal.
There are a couple small changes I'd like:
- I'd rather not introduce use of
failure::bail, changing the return type ofimplicit_vector_default. It would be preferable to keep this code better aligned with surrounding idioms: we have our own (unrelated)bail!macro elsewhere in the codebase, no other usages offailure::bail, and return types generally useResult<_, TranslationError>. - Could you clarify in your commit message that
_mm_cvtph_psis now implemented (cf._mm_loadu_si64, which is now removed)?
|
Sorry for the long delay. I have decided to close this PR, since testing has uncovered a bug in the current support of SIMD intrinsics, which means that the feature flag still cannot be removed even on x86/x86_64. With regards to #[derive(Clone, Eq, PartialEq, Debug)]
pub enum TranslationErrorKind {
Generic,
// Not enough simd intrinsics are available in LLVM < 7
OldLLVMSimd,
// We are waiting for va_copy support to land in rustc
VaCopyNotImplemented,
// Clang AST exported by AST-exporter was not valid
InvalidClangAst(ClangAstParseErrorKind),
}only I don't know whether I should discuss it here, or open a separate issue. |
|
Thanks for following up. Whenever the rustc bug gets fixed we should revive this push. The error refactoring does sound like it would be worthwhile--I just want to keep things internally consistent, so we should address it as a unit across the codebase. An issue for that would also be great. Thanks for your time! |
|
Regarding error handling, there are currently a lot of |
Removed stabilized intrinsics from the list of missing functions, added hard error on removed
__m64intrinsics, removed unused feature flag.