You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What behaviour did you expect: Expected the properties to be checked to be the same for both << and simd_shl.
What happened instead: The properties checked aren't the same for both << and simd_shl. In particular, when I run the program above in Kani, I see the following verification output for test_normal:
RESULTS:
Check 1: test_normal.assertion.1
- Status: FAILURE
- Description: "attempt to shift left with overflow"
- Location: tests/kani/Intrinsics/SIMD/Operators/bitshift.rs:29:23 in function test_normal
Check 2: test_normal.undefined-shift.1
- Status: SUCCESS
- Description: "shift distance is negative"
- Location: tests/kani/Intrinsics/SIMD/Operators/bitshift.rs:29:23 in function test_normal
Check 3: test_normal.undefined-shift.2
- Status: FAILURE
- Description: "shift distance too large"
- Location: tests/kani/Intrinsics/SIMD/Operators/bitshift.rs:29:23 in function test_normal
Check 4: test_normal.undefined-shift.3
- Status: SUCCESS
- Description: "shift operand is negative"
- Location: tests/kani/Intrinsics/SIMD/Operators/bitshift.rs:29:23 in function test_normal
And the following verification output for test_simd:
The SIMD vector expression successfully duplicates all checks except for "attempt to shift left with overflow". The comments in goto_check_c.cpp make me think this check is still necessary (even if it overlaps with "shift distance too large" in some cases), but I couldn't find the origin of that check.
So I was expecting this check to also be generated for the SIMD vector expression. Same thing goes for the >> and simd_shr duo.
The text was updated successfully, but these errors were encountered:
NlightNFotis
added
aws
Bugs or features of importance to AWS CBMC users
Kani
Bugs or features of importance to Kani Rust Verifier
labels
Nov 18, 2022
I'm afraid that check "attempt to shift left with overflow" is one that Kani generates (it's already part of the generated symtab JSON file), it's not one generated by CBMC. So Kani will need to duplicate this for the SIMD case.
CBMC version: 5.69.1 (+ this Kani branch)
Operating system: ubuntu-20.04
Exact command line resulting in the issue: Default
kani
command this example:What behaviour did you expect: Expected the properties to be checked to be the same for both
<<
andsimd_shl
.What happened instead: The properties checked aren't the same for both
<<
andsimd_shl
. In particular, when I run the program above in Kani, I see the following verification output fortest_normal
:And the following verification output for
test_simd
:The SIMD vector expression successfully duplicates all checks except for
"attempt to shift left with overflow"
. The comments ingoto_check_c.cpp
make me think this check is still necessary (even if it overlaps with"shift distance too large"
in some cases), but I couldn't find the origin of that check.So I was expecting this check to also be generated for the SIMD vector expression. Same thing goes for the
>>
andsimd_shr
duo.The text was updated successfully, but these errors were encountered: