dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 1 | #version 310 es |
dan sinclair | 6e93ca5 | 2024-08-28 23:58:04 +0000 | [diff] [blame] | 2 | |
dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 3 | int a = 0; |
| 4 | float b = 0.0f; |
dan sinclair | ab4e99f | 2024-09-28 05:08:57 +0000 | [diff] [blame] | 5 | float tint_float_modulo(float x, float y) { |
| 6 | return (x - (y * trunc((x / y)))); |
| 7 | } |
dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 8 | int tint_mod_i32(int lhs, int rhs) { |
dan sinclair | 22f7682 | 2024-09-23 18:37:09 +0000 | [diff] [blame] | 9 | uint v = uint((lhs == (-2147483647 - 1))); |
| 10 | bool v_1 = bool((v & uint((rhs == -1)))); |
| 11 | uint v_2 = uint((rhs == 0)); |
dan sinclair | a6300bf | 2024-09-27 23:48:30 +0000 | [diff] [blame] | 12 | int v_3 = mix(rhs, 1, bool((v_2 | uint(v_1)))); |
dan sinclair | 22f7682 | 2024-09-23 18:37:09 +0000 | [diff] [blame] | 13 | return (lhs - ((lhs / v_3) * v_3)); |
dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 14 | } |
| 15 | int tint_div_i32(int lhs, int rhs) { |
dan sinclair | 22f7682 | 2024-09-23 18:37:09 +0000 | [diff] [blame] | 16 | uint v_4 = uint((lhs == (-2147483647 - 1))); |
| 17 | bool v_5 = bool((v_4 & uint((rhs == -1)))); |
| 18 | uint v_6 = uint((rhs == 0)); |
dan sinclair | a6300bf | 2024-09-27 23:48:30 +0000 | [diff] [blame] | 19 | return (lhs / mix(rhs, 1, bool((v_6 | uint(v_5))))); |
dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 20 | } |
| 21 | void foo(int maybe_zero) { |
| 22 | a = tint_div_i32(a, maybe_zero); |
| 23 | a = tint_mod_i32(a, maybe_zero); |
| 24 | b = (b / 0.0f); |
dan sinclair | ab4e99f | 2024-09-28 05:08:57 +0000 | [diff] [blame] | 25 | b = tint_float_modulo(b, 0.0f); |
dan sinclair | 22f7682 | 2024-09-23 18:37:09 +0000 | [diff] [blame] | 26 | float v_7 = float(maybe_zero); |
| 27 | b = (b / v_7); |
| 28 | float v_8 = float(maybe_zero); |
dan sinclair | ab4e99f | 2024-09-28 05:08:57 +0000 | [diff] [blame] | 29 | b = tint_float_modulo(b, v_8); |
dan sinclair | 949fa99 | 2024-09-16 17:26:13 +0000 | [diff] [blame] | 30 | } |
| 31 | layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; |
| 32 | void main() { |
| 33 | } |