@@ -231,6 +231,16 @@ namespace sw
231
231
case spv::OpFSub:
232
232
case spv::OpFDiv:
233
233
case spv::OpUMod:
234
+ case spv::OpIEqual:
235
+ case spv::OpINotEqual:
236
+ case spv::OpUGreaterThan:
237
+ case spv::OpSGreaterThan:
238
+ case spv::OpUGreaterThanEqual:
239
+ case spv::OpSGreaterThanEqual:
240
+ case spv::OpULessThan:
241
+ case spv::OpSLessThan:
242
+ case spv::OpULessThanEqual:
243
+ case spv::OpSLessThanEqual:
234
244
case spv::OpShiftRightLogical:
235
245
case spv::OpShiftRightArithmetic:
236
246
case spv::OpShiftLeftLogical:
@@ -918,6 +928,16 @@ namespace sw
918
928
case spv::OpFSub:
919
929
case spv::OpFDiv:
920
930
case spv::OpUMod:
931
+ case spv::OpIEqual:
932
+ case spv::OpINotEqual:
933
+ case spv::OpUGreaterThan:
934
+ case spv::OpSGreaterThan:
935
+ case spv::OpUGreaterThanEqual:
936
+ case spv::OpSGreaterThanEqual:
937
+ case spv::OpULessThan:
938
+ case spv::OpSLessThan:
939
+ case spv::OpULessThanEqual:
940
+ case spv::OpSLessThanEqual:
921
941
case spv::OpShiftRightLogical:
922
942
case spv::OpShiftRightArithmetic:
923
943
case spv::OpShiftLeftLogical:
@@ -1269,6 +1289,36 @@ namespace sw
1269
1289
case spv::OpUMod:
1270
1290
dst.emplace (i, As<SIMD::Float>(As<SIMD::UInt>(lhs) % As<SIMD::UInt>(rhs)));
1271
1291
break ;
1292
+ case spv::OpIEqual:
1293
+ dst.emplace (i, As<SIMD::Float>(CmpEQ (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1294
+ break ;
1295
+ case spv::OpINotEqual:
1296
+ dst.emplace (i, As<SIMD::Float>(CmpNEQ (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1297
+ break ;
1298
+ case spv::OpUGreaterThan:
1299
+ dst.emplace (i, As<SIMD::Float>(CmpGT (As<SIMD::UInt>(lhs), As<SIMD::UInt>(rhs))));
1300
+ break ;
1301
+ case spv::OpSGreaterThan:
1302
+ dst.emplace (i, As<SIMD::Float>(CmpGT (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1303
+ break ;
1304
+ case spv::OpUGreaterThanEqual:
1305
+ dst.emplace (i, As<SIMD::Float>(CmpGE (As<SIMD::UInt>(lhs), As<SIMD::UInt>(rhs))));
1306
+ break ;
1307
+ case spv::OpSGreaterThanEqual:
1308
+ dst.emplace (i, As<SIMD::Float>(CmpGE (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1309
+ break ;
1310
+ case spv::OpULessThan:
1311
+ dst.emplace (i, As<SIMD::Float>(CmpLT (As<SIMD::UInt>(lhs), As<SIMD::UInt>(rhs))));
1312
+ break ;
1313
+ case spv::OpSLessThan:
1314
+ dst.emplace (i, As<SIMD::Float>(CmpLT (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1315
+ break ;
1316
+ case spv::OpULessThanEqual:
1317
+ dst.emplace (i, As<SIMD::Float>(CmpLE (As<SIMD::UInt>(lhs), As<SIMD::UInt>(rhs))));
1318
+ break ;
1319
+ case spv::OpSLessThanEqual:
1320
+ dst.emplace (i, As<SIMD::Float>(CmpLE (As<SIMD::Int>(lhs), As<SIMD::Int>(rhs))));
1321
+ break ;
1272
1322
case spv::OpFAdd:
1273
1323
dst.emplace (i, lhs + rhs);
1274
1324
break ;
0 commit comments