1 2 case correct_int_literal 3 version 300 es 4 values 5 { 6 uniform int u_ref = -1610612736; 7 output float out0 = 1.0; 8 } 9 both "" 10 #version 300 es 11 precision mediump float; 12 uniform highp int u_ref; 13 ${DECLARATIONS} 14 void main() 15 { 16 highp int h = 0xA0000000; 17 out0 = 0.0; 18 if (h == u_ref) 19 out0 = 1.0; 20 ${OUTPUT} 21 } 22 "" 23 end 24 25 case int_overflow_1 26 version 300 es 27 expect compile_fail 28 both "" 29 #version 300 es 30 precision mediump float; 31 ${DECLARATIONS} 32 void main() 33 { 34 highp int i = 5000000000; 35 out0 = 1.0; 36 ${OUTPUT} 37 } 38 "" 39 end 40 41 case int_overflow_2 42 version 300 es 43 expect compile_fail 44 both "" 45 #version 300 es 46 precision mediump float; 47 ${DECLARATIONS} 48 void main() 49 { 50 highp int j = 0xFFFFFFFFF; 51 out0 = 1.0; 52 ${OUTPUT} 53 } 54 "" 55 end 56 57 case int_wrap_1 58 version 300 es 59 values { output int out0 = -2147483648; } 60 vertex "" 61 #version 300 es 62 ${VERTEX_DECLARATIONS} 63 void main() 64 { 65 ${VERTEX_OUTPUT} 66 } 67 "" 68 fragment "" 69 #version 300 es 70 precision mediump float; 71 ${FRAGMENT_DECLARATIONS} 72 void main() 73 { 74 out0 = 0x80000000; 75 ${FRAGMENT_OUTPUT} 76 } 77 "" 78 end 79 80 case int_wrap_2 81 version 300 es 82 values { output int out0 = -2147483648; } 83 vertex "" 84 #version 300 es 85 ${VERTEX_DECLARATIONS} 86 void main() 87 { 88 ${VERTEX_OUTPUT} 89 } 90 "" 91 fragment "" 92 #version 300 es 93 precision mediump float; 94 ${FRAGMENT_DECLARATIONS} 95 void main() 96 { 97 out0 = 2147483648; 98 ${FRAGMENT_OUTPUT} 99 } 100 "" 101 end 102