.uint8 compile-time error
### Description
this runs fine
```nim
block :
    let test_u64 : uint64 =   0xFF07.uint64
    let test_u8  : uint8  = test_u64.uint8
    echo test_u8
```
and as expected shows the value of the lowest byte = 7

but the same code breaks at compile-time
```nim
static :
    let test_u64 : uint64 =   0xFF07.uint64
    let test_u8  : uint8  = test_u64.uint8
        # Error: illegal conversion from '65287' to '[0..255]'
    echo test_u8
```

### Expected Output
to be the same as at execution-time :
7 = the value of the lowest byte

### Possible Solution
in the nimvm implementation adding before the conversion
```nim
and 0xFF
```
to extract the lowest byte and have it in range [0..255] ,
identical to the behaviour at execution-time .

### Nim Version
"Nightly build on 2024-08-13 for branch devel"
```
nim -v
Nim Compiler Version 2.1.9 [Windows: amd64]
Compiled at 2024-08-13
```

### Additional Information
compiled with the cmdLine
```
nim compile
    --cc:clang --passC:--ld-path=ld.lld --passL:--ld-path=ld.lld
    --app:console
    --threads:off
    test_uint8.nim
```
with the llvm version :
`winlibs-x86_64-posix-seh-gcc-14.1.0-llvm-18.1.8-mingw-w64ucrt-12.0.0-r3`
on :
`Win10 pro 64bit 22H2`

this was already reported #23132
and closed as completed ,
but the committed fixes didn't solve it .
