On Thu Sep 7 19:38:23 2023 +0000, Zebediah Figura wrote:
Converting to the type of the first argument is unusual for intrinsics, and needs tests to show it's the right behaviour. Most intrinsics take the smallest "intersection" of their argument types. Note also that add_user_call() uses add_cast() which won't actually fail if an implicit conversion can't be performed. We may want to change that anyway; I don't think we have any code that performs an invalid cast, but we do have code that fails to print a warning on e.g. vector truncation.
Oh, I didn't read this thread before, but I found https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/333#note_44607 which I think counts as "code that performs an invalid cast".