Fix #1360: uint->int width conversions must still be typed as uint.

This commit is contained in:
John Kessenich
2018-06-04 19:11:25 -06:00
parent 14b85d3ff3
commit ad7645f4f5
8 changed files with 662 additions and 701 deletions

View File

@@ -37,13 +37,13 @@ spv.int8.frag
Name 51 "u8v"
Name 54 "i8v"
Name 60 "i16v"
Name 68 "i32v"
Name 76 "u32v"
Name 83 "i64v"
Name 89 "u64v"
Name 103 "f16v"
Name 109 "f32v"
Name 115 "f64v"
Name 70 "i32v"
Name 78 "u32v"
Name 85 "i64v"
Name 91 "u64v"
Name 105 "f16v"
Name 111 "f32v"
Name 117 "f64v"
Name 144 "u16v"
Name 174 "bv"
Name 192 "u8v"
@@ -125,28 +125,28 @@ spv.int8.frag
57: TypeInt 16 1
58: TypeVector 57(int16_t) 2
59: TypePointer Function 58(i16vec2)
66: TypeVector 27(int) 2
67: TypePointer Function 66(ivec2)
64: TypeInt 16 0
65: TypeVector 64(int16_t) 2
68: TypeVector 27(int) 2
69: TypePointer Function 68(ivec2)
74: TypeVector 17(int) 2
75: TypePointer Function 74(ivec2)
80: TypeInt 64 1
81: TypeVector 80(int64_t) 2
82: TypePointer Function 81(i64vec2)
86: TypeInt 64 0
87: TypeVector 86(int64_t) 2
88: TypePointer Function 87(i64vec2)
100: TypeFloat 16
101: TypeVector 100(float16_t) 2
102: TypePointer Function 101(f16vec2)
106: TypeFloat 32
107: TypeVector 106(float) 2
108: TypePointer Function 107(fvec2)
112: TypeFloat 64
113: TypeVector 112(float64_t) 2
114: TypePointer Function 113(f64vec2)
141: TypeInt 16 0
142: TypeVector 141(int16_t) 2
143: TypePointer Function 142(i16vec2)
77: TypePointer Function 74(ivec2)
82: TypeInt 64 1
83: TypeVector 82(int64_t) 2
84: TypePointer Function 83(i64vec2)
88: TypeInt 64 0
89: TypeVector 88(int64_t) 2
90: TypePointer Function 89(i64vec2)
102: TypeFloat 16
103: TypeVector 102(float16_t) 2
104: TypePointer Function 103(f16vec2)
108: TypeFloat 32
109: TypeVector 108(float) 2
110: TypePointer Function 109(fvec2)
114: TypeFloat 64
115: TypeVector 114(float64_t) 2
116: TypePointer Function 115(f64vec2)
143: TypePointer Function 65(i16vec2)
171: TypeBool
172: TypeVector 171(bool) 2
173: TypePointer Function 172(bvec2)
@@ -179,7 +179,7 @@ spv.int8.frag
428: 427(bvec3) ConstantComposite 411 411 411
434: TypeVector 14(int8_t) 4
435: TypePointer Function 434(i8vec4)
439: TypePointer Function 141(int16_t)
439: TypePointer Function 64(int16_t)
445: TypeVector 36(int8_t) 4
446: TypePointer Function 445(i8vec4)
458: TypePointer Function 427(bvec3)
@@ -217,13 +217,13 @@ spv.int8.frag
51(u8v): 50(ptr) Variable Function
54(i8v): 53(ptr) Variable Function
60(i16v): 59(ptr) Variable Function
68(i32v): 67(ptr) Variable Function
76(u32v): 75(ptr) Variable Function
83(i64v): 82(ptr) Variable Function
89(u64v): 88(ptr) Variable Function
103(f16v): 102(ptr) Variable Function
109(f32v): 108(ptr) Variable Function
115(f64v): 114(ptr) Variable Function
70(i32v): 69(ptr) Variable Function
78(u32v): 77(ptr) Variable Function
85(i64v): 84(ptr) Variable Function
91(u64v): 90(ptr) Variable Function
105(f16v): 104(ptr) Variable Function
111(f32v): 110(ptr) Variable Function
117(f64v): 116(ptr) Variable Function
144(u16v): 143(ptr) Variable Function
174(bv): 173(ptr) Variable Function
55: 52(i8vec2) Load 54(i8v)
@@ -233,116 +233,116 @@ spv.int8.frag
62: 58(i16vec2) SConvert 61
Store 60(i16v) 62
63: 49(i8vec2) Load 51(u8v)
64: 58(i16vec2) UConvert 63
65: 58(i16vec2) Bitcast 64
Store 60(i16v) 65
69: 52(i8vec2) Load 54(i8v)
70: 66(ivec2) SConvert 69
Store 68(i32v) 70
71: 49(i8vec2) Load 51(u8v)
72: 66(ivec2) UConvert 71
73: 66(ivec2) Bitcast 72
Store 68(i32v) 73
77: 52(i8vec2) Load 54(i8v)
78: 66(ivec2) SConvert 77
79: 74(ivec2) Bitcast 78
Store 76(u32v) 79
84: 52(i8vec2) Load 54(i8v)
85: 81(i64vec2) SConvert 84
Store 83(i64v) 85
90: 52(i8vec2) Load 54(i8v)
91: 81(i64vec2) SConvert 90
92: 87(i64vec2) Bitcast 91
Store 89(u64v) 92
93: 49(i8vec2) Load 51(u8v)
94: 74(ivec2) UConvert 93
Store 76(u32v) 94
66: 65(i16vec2) UConvert 63
67: 58(i16vec2) Bitcast 66
Store 60(i16v) 67
71: 52(i8vec2) Load 54(i8v)
72: 68(ivec2) SConvert 71
Store 70(i32v) 72
73: 49(i8vec2) Load 51(u8v)
75: 74(ivec2) UConvert 73
76: 68(ivec2) Bitcast 75
Store 70(i32v) 76
79: 52(i8vec2) Load 54(i8v)
80: 68(ivec2) SConvert 79
81: 74(ivec2) Bitcast 80
Store 78(u32v) 81
86: 52(i8vec2) Load 54(i8v)
87: 83(i64vec2) SConvert 86
Store 85(i64v) 87
92: 52(i8vec2) Load 54(i8v)
93: 83(i64vec2) SConvert 92
94: 89(i64vec2) Bitcast 93
Store 91(u64v) 94
95: 49(i8vec2) Load 51(u8v)
96: 81(i64vec2) UConvert 95
97: 81(i64vec2) Bitcast 96
Store 83(i64v) 97
98: 49(i8vec2) Load 51(u8v)
99: 87(i64vec2) UConvert 98
Store 89(u64v) 99
104: 52(i8vec2) Load 54(i8v)
105:101(f16vec2) ConvertSToF 104
Store 103(f16v) 105
110: 52(i8vec2) Load 54(i8v)
111: 107(fvec2) ConvertSToF 110
Store 109(f32v) 111
116: 52(i8vec2) Load 54(i8v)
117:113(f64vec2) ConvertSToF 116
Store 115(f64v) 117
118: 49(i8vec2) Load 51(u8v)
119:101(f16vec2) ConvertUToF 118
Store 103(f16v) 119
96: 74(ivec2) UConvert 95
Store 78(u32v) 96
97: 49(i8vec2) Load 51(u8v)
98: 89(i64vec2) UConvert 97
99: 83(i64vec2) Bitcast 98
Store 85(i64v) 99
100: 49(i8vec2) Load 51(u8v)
101: 89(i64vec2) UConvert 100
Store 91(u64v) 101
106: 52(i8vec2) Load 54(i8v)
107:103(f16vec2) ConvertSToF 106
Store 105(f16v) 107
112: 52(i8vec2) Load 54(i8v)
113: 109(fvec2) ConvertSToF 112
Store 111(f32v) 113
118: 52(i8vec2) Load 54(i8v)
119:115(f64vec2) ConvertSToF 118
Store 117(f64v) 119
120: 49(i8vec2) Load 51(u8v)
121: 107(fvec2) ConvertUToF 120
Store 109(f32v) 121
121:103(f16vec2) ConvertUToF 120
Store 105(f16v) 121
122: 49(i8vec2) Load 51(u8v)
123:113(f64vec2) ConvertUToF 122
Store 115(f64v) 123
123: 109(fvec2) ConvertUToF 122
Store 111(f32v) 123
124: 49(i8vec2) Load 51(u8v)
125: 52(i8vec2) Bitcast 124
Store 54(i8v) 125
126: 52(i8vec2) Load 54(i8v)
127: 58(i16vec2) SConvert 126
Store 60(i16v) 127
128: 49(i8vec2) Load 51(u8v)
129: 58(i16vec2) UConvert 128
130: 58(i16vec2) Bitcast 129
Store 60(i16v) 130
131: 52(i8vec2) Load 54(i8v)
132: 66(ivec2) SConvert 131
Store 68(i32v) 132
133: 49(i8vec2) Load 51(u8v)
134: 66(ivec2) UConvert 133
135: 66(ivec2) Bitcast 134
Store 68(i32v) 135
136: 52(i8vec2) Load 54(i8v)
137: 81(i64vec2) SConvert 136
Store 83(i64v) 137
125:115(f64vec2) ConvertUToF 124
Store 117(f64v) 125
126: 49(i8vec2) Load 51(u8v)
127: 52(i8vec2) Bitcast 126
Store 54(i8v) 127
128: 52(i8vec2) Load 54(i8v)
129: 58(i16vec2) SConvert 128
Store 60(i16v) 129
130: 49(i8vec2) Load 51(u8v)
131: 65(i16vec2) UConvert 130
132: 58(i16vec2) Bitcast 131
Store 60(i16v) 132
133: 52(i8vec2) Load 54(i8v)
134: 68(ivec2) SConvert 133
Store 70(i32v) 134
135: 49(i8vec2) Load 51(u8v)
136: 74(ivec2) UConvert 135
137: 68(ivec2) Bitcast 136
Store 70(i32v) 137
138: 52(i8vec2) Load 54(i8v)
139: 81(i64vec2) SConvert 138
140: 87(i64vec2) Bitcast 139
Store 89(u64v) 140
139: 83(i64vec2) SConvert 138
Store 85(i64v) 139
140: 52(i8vec2) Load 54(i8v)
141: 83(i64vec2) SConvert 140
142: 89(i64vec2) Bitcast 141
Store 91(u64v) 142
145: 52(i8vec2) Load 54(i8v)
146: 58(i16vec2) SConvert 145
147:142(i16vec2) Bitcast 146
147: 65(i16vec2) Bitcast 146
Store 144(u16v) 147
148: 49(i8vec2) Load 51(u8v)
149:142(i16vec2) UConvert 148
149: 65(i16vec2) UConvert 148
Store 144(u16v) 149
150: 49(i8vec2) Load 51(u8v)
151: 74(ivec2) UConvert 150
Store 76(u32v) 151
Store 78(u32v) 151
152: 49(i8vec2) Load 51(u8v)
153: 81(i64vec2) UConvert 152
154: 81(i64vec2) Bitcast 153
Store 83(i64v) 154
153: 89(i64vec2) UConvert 152
154: 83(i64vec2) Bitcast 153
Store 85(i64v) 154
155: 49(i8vec2) Load 51(u8v)
156: 81(i64vec2) UConvert 155
157: 81(i64vec2) Bitcast 156
158: 87(i64vec2) Bitcast 157
Store 89(u64v) 158
156: 89(i64vec2) UConvert 155
157: 83(i64vec2) Bitcast 156
158: 89(i64vec2) Bitcast 157
Store 91(u64v) 158
159: 52(i8vec2) Load 54(i8v)
160:101(f16vec2) ConvertSToF 159
Store 103(f16v) 160
160:103(f16vec2) ConvertSToF 159
Store 105(f16v) 160
161: 52(i8vec2) Load 54(i8v)
162: 107(fvec2) ConvertSToF 161
Store 109(f32v) 162
162: 109(fvec2) ConvertSToF 161
Store 111(f32v) 162
163: 52(i8vec2) Load 54(i8v)
164:113(f64vec2) ConvertSToF 163
Store 115(f64v) 164
164:115(f64vec2) ConvertSToF 163
Store 117(f64v) 164
165: 49(i8vec2) Load 51(u8v)
166:101(f16vec2) ConvertUToF 165
Store 103(f16v) 166
166:103(f16vec2) ConvertUToF 165
Store 105(f16v) 166
167: 49(i8vec2) Load 51(u8v)
168: 107(fvec2) ConvertUToF 167
Store 109(f32v) 168
168: 109(fvec2) ConvertUToF 167
Store 111(f32v) 168
169: 49(i8vec2) Load 51(u8v)
170:113(f64vec2) ConvertUToF 169
Store 115(f64v) 170
170:115(f64vec2) ConvertUToF 169
Store 117(f64v) 170
175: 172(bvec2) Load 174(bv)
179: 52(i8vec2) Select 175 178 177
Store 54(i8v) 179
@@ -649,7 +649,7 @@ spv.int8.frag
438: 27(int) Bitcast 437
Store 433(i32) 438
442: 49(i8vec2) Load 441(u8v2)
443:141(int16_t) Bitcast 442
443: 64(int16_t) Bitcast 442
Store 440(u16) 443
448: 445(i8vec4) Load 447(u8v4)
449: 17(int) Bitcast 448
@@ -660,7 +660,7 @@ spv.int8.frag
452: 27(int) Load 433(i32)
453: 434(i8vec4) Bitcast 452
Store 436(i8v4) 453
454:141(int16_t) Load 440(u16)
454: 64(int16_t) Load 440(u16)
455: 49(i8vec2) Bitcast 454
Store 441(u8v2) 455
456: 17(int) Load 444(u32)