diff options
author | Roland Scheidegger <[email protected]> | 2013-07-30 21:26:27 +0200 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2013-08-02 03:49:57 +0200 |
commit | e7ed70a52e2d0efc11d1e9fe19938bc431f947c1 (patch) | |
tree | 3e1a5cb36d282047bebd91807540812a47656191 /src/glsl/loop_controls.cpp | |
parent | 7a72bef47e8731276ac4ca0b8c4d6d50366c1ec2 (diff) |
gallivm: obey clarified shift behavior
llvm shifts are undefined for shift counts exceeding (or matching) bit width,
so need to apply a mask for the tgsi shift instructions.
v2: only use mask for the tgsi shift instructions, not for the build shift
helpers. None of the internal callers need this behavior, and while llvm can
optimize away the masking for constants there are legitimate cases where it
might not be able to do so even if we know that shift count must be smaller
than type width (currently all such callers do not use the build shift
helpers).
Reviewed-by: Zack Rusin <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/glsl/loop_controls.cpp')
0 files changed, 0 insertions, 0 deletions