Lines Matching refs:std

15 // Tests validation rules of GLSL.450.std and OpenCL.std extended instructions.
16 // Doesn't test OpenCL.std vector size 2, 3, 4, 8 or 16 rules (not supported
36 using ValidateGlslStd450SqrtLike = spvtest::ValidateBase<std::string>;
37 using ValidateGlslStd450FMinLike = spvtest::ValidateBase<std::string>;
38 using ValidateGlslStd450FClampLike = spvtest::ValidateBase<std::string>;
39 using ValidateGlslStd450SAbsLike = spvtest::ValidateBase<std::string>;
40 using ValidateGlslStd450UMinLike = spvtest::ValidateBase<std::string>;
41 using ValidateGlslStd450UClampLike = spvtest::ValidateBase<std::string>;
42 using ValidateGlslStd450SinLike = spvtest::ValidateBase<std::string>;
43 using ValidateGlslStd450PowLike = spvtest::ValidateBase<std::string>;
44 using ValidateGlslStd450Pack = spvtest::ValidateBase<std::string>;
45 using ValidateGlslStd450Unpack = spvtest::ValidateBase<std::string>;
46 using ValidateOpenCLStdSqrtLike = spvtest::ValidateBase<std::string>;
47 using ValidateOpenCLStdFMinLike = spvtest::ValidateBase<std::string>;
48 using ValidateOpenCLStdFClampLike = spvtest::ValidateBase<std::string>;
49 using ValidateOpenCLStdSAbsLike = spvtest::ValidateBase<std::string>;
50 using ValidateOpenCLStdUMinLike = spvtest::ValidateBase<std::string>;
51 using ValidateOpenCLStdUClampLike = spvtest::ValidateBase<std::string>;
52 using ValidateOpenCLStdUMul24Like = spvtest::ValidateBase<std::string>;
53 using ValidateOpenCLStdUMad24Like = spvtest::ValidateBase<std::string>;
54 using ValidateOpenCLStdLengthLike = spvtest::ValidateBase<std::string>;
55 using ValidateOpenCLStdDistanceLike = spvtest::ValidateBase<std::string>;
56 using ValidateOpenCLStdNormalizeLike = spvtest::ValidateBase<std::string>;
57 using ValidateOpenCLStdVStoreHalfLike = spvtest::ValidateBase<std::string>;
58 using ValidateOpenCLStdVLoadHalfLike = spvtest::ValidateBase<std::string>;
59 using ValidateOpenCLStdFractLike = spvtest::ValidateBase<std::string>;
60 using ValidateOpenCLStdFrexpLike = spvtest::ValidateBase<std::string>;
61 using ValidateOpenCLStdLdexpLike = spvtest::ValidateBase<std::string>;
62 using ValidateOpenCLStdUpsampleLike = spvtest::ValidateBase<std::string>;
68 uint32_t GetPackedNumComponents(const std::string& ext_inst_name) {
70 const std::string num_components_str =
72 return uint32_t(std::stoul(num_components_str));
77 uint32_t GetPackedBitWidth(const std::string& ext_inst_name) {
79 const std::string packed_bit_width_str = ext_inst_name.substr(x_index + 1);
80 return uint32_t(std::stoul(packed_bit_width_str));
83 std::string GenerateShaderCode(
84 const std::string& body,
85 const std::string& capabilities_and_extensions = "",
86 const std::string& execution_model = "Fragment") {
87 std::ostringstream ss;
97 ss << "%extinst = OpExtInstImport \"GLSL.std.450\"\n";
263 std::string GenerateKernelCode(
264 const std::string& body,
265 const std::string& capabilities_and_extensions = "",
266 const std::string& memory_model = "Physical32") {
267 std::ostringstream ss;
283 ss << "%extinst = OpExtInstImport \"OpenCL.std\"\n";
465 const std::string ext_inst_name = GetParam();
466 std::ostringstream ss;
476 const std::string ext_inst_name = GetParam();
477 const std::string body =
483 HasSubstr("GLSL.std.450 " + ext_inst_name +
489 const std::string ext_inst_name = GetParam();
490 const std::string body =
496 HasSubstr("GLSL.std.450 " + ext_inst_name +
502 ::testing::ValuesIn(std::vector<std::string>{
517 const std::string ext_inst_name = GetParam();
518 std::ostringstream ss;
530 const std::string ext_inst_name = GetParam();
531 const std::string body =
537 HasSubstr("GLSL.std.450 " + ext_inst_name +
543 const std::string ext_inst_name = GetParam();
544 const std::string body =
550 HasSubstr("GLSL.std.450 " + ext_inst_name +
556 const std::string ext_inst_name = GetParam();
557 const std::string body =
563 HasSubstr("GLSL.std.450 " + ext_inst_name +
569 ::testing::ValuesIn(std::vector<std::string>{
579 const std::string ext_inst_name = GetParam();
580 std::ostringstream ss;
592 const std::string ext_inst_name = GetParam();
593 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
599 HasSubstr("GLSL.std.450 " + ext_inst_name +
605 const std::string ext_inst_name = GetParam();
606 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
612 HasSubstr("GLSL.std.450 " + ext_inst_name +
618 const std::string ext_inst_name = GetParam();
619 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
625 HasSubstr("GLSL.std.450 " + ext_inst_name +
631 const std::string ext_inst_name = GetParam();
632 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
638 HasSubstr("GLSL.std.450 " + ext_inst_name +
644 ::testing::ValuesIn(std::vector<std::string>{
654 const std::string ext_inst_name = GetParam();
655 std::ostringstream ss;
673 const std::string ext_inst_name = GetParam();
674 const std::string body =
680 HasSubstr("GLSL.std.450 " + ext_inst_name +
686 const std::string ext_inst_name = GetParam();
687 const std::string body =
693 HasSubstr("GLSL.std.450 " + ext_inst_name +
699 const std::string ext_inst_name = GetParam();
700 const std::string body =
706 HasSubstr("GLSL.std.450 " + ext_inst_name +
712 const std::string ext_inst_name = GetParam();
713 const std::string body =
719 HasSubstr("GLSL.std.450 " + ext_inst_name +
725 const std::string ext_inst_name = GetParam();
726 const std::string body =
733 HasSubstr("GLSL.std.450 " + ext_inst_name +
738 ::testing::ValuesIn(std::vector<std::string>{
747 const std::string body = R"(
754 HasSubstr("GLSL.std.450 FindUMsb: this instruction is currently "
759 const std::string body = R"(
766 HasSubstr("GLSL.std.450 FindSMsb: this instruction is currently "
771 const std::string ext_inst_name = GetParam();
772 std::ostringstream ss;
796 const std::string ext_inst_name = GetParam();
797 const std::string body =
803 HasSubstr("GLSL.std.450 " + ext_inst_name +
809 const std::string ext_inst_name = GetParam();
810 const std::string body =
816 HasSubstr("GLSL.std.450 " + ext_inst_name +
822 const std::string ext_inst_name = GetParam();
823 const std::string body =
829 HasSubstr("GLSL.std.450 " + ext_inst_name +
835 const std::string ext_inst_name = GetParam();
836 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
842 HasSubstr("GLSL.std.450 " + ext_inst_name +
848 const std::string ext_inst_name = GetParam();
849 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
855 HasSubstr("GLSL.std.450 " + ext_inst_name +
861 const std::string ext_inst_name = GetParam();
862 const std::string body =
868 HasSubstr("GLSL.std.450 " + ext_inst_name +
874 const std::string ext_inst_name = GetParam();
875 const std::string body =
881 HasSubstr("GLSL.std.450 " + ext_inst_name +
887 const std::string ext_inst_name = GetParam();
888 const std::string body = "%val1 = OpExtInst %s64 %extinst " + ext_inst_name +
895 HasSubstr("GLSL.std.450 " + ext_inst_name +
900 ::testing::ValuesIn(std::vector<std::string>{
908 const std::string ext_inst_name = GetParam();
909 std::ostringstream ss;
933 const std::string ext_inst_name = GetParam();
934 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
940 HasSubstr("GLSL.std.450 " + ext_inst_name +
946 const std::string ext_inst_name = GetParam();
947 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
953 HasSubstr("GLSL.std.450 " + ext_inst_name +
959 const std::string ext_inst_name = GetParam();
960 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
966 HasSubstr("GLSL.std.450 " + ext_inst_name +
972 const std::string ext_inst_name = GetParam();
973 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
979 HasSubstr("GLSL.std.450 " + ext_inst_name +
985 const std::string ext_inst_name = GetParam();
986 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
992 HasSubstr("GLSL.std.450 " + ext_inst_name +
998 const std::string ext_inst_name = GetParam();
999 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
1005 HasSubstr("GLSL.std.450 " + ext_inst_name +
1011 const std::string ext_inst_name = GetParam();
1012 const std::string body = "%val1 = OpExtInst %s32 %extinst " + ext_inst_name +
1018 HasSubstr("GLSL.std.450 " + ext_inst_name +
1024 const std::string ext_inst_name = GetParam();
1025 const std::string body = "%val1 = OpExtInst %s64 %extinst " + ext_inst_name +
1031 HasSubstr("GLSL.std.450 " + ext_inst_name +
1037 const std::string ext_inst_name = GetParam();
1038 const std::string body = "%val1 = OpExtInst %s64 %extinst " + ext_inst_name +
1044 HasSubstr("GLSL.std.450 " + ext_inst_name +
1050 const std::string ext_inst_name = GetParam();
1051 const std::string body = "%val1 = OpExtInst %s64 %extinst " + ext_inst_name +
1057 HasSubstr("GLSL.std.450 " + ext_inst_name +
1063 const std::string ext_inst_name = GetParam();
1064 const std::string body = "%val1 = OpExtInst %s64 %extinst " + ext_inst_name +
1071 HasSubstr("GLSL.std.450 " + ext_inst_name +
1076 ::testing::ValuesIn(std::vector<std::string>{
1082 const std::string ext_inst_name = GetParam();
1083 std::ostringstream ss;
1092 const std::string ext_inst_name = GetParam();
1093 const std::string body =
1099 HasSubstr("GLSL.std.450 " + ext_inst_name +
1105 const std::string ext_inst_name = GetParam();
1106 const std::string body =
1112 HasSubstr("GLSL.std.450 " + ext_inst_name +
1118 const std::string ext_inst_name = GetParam();
1119 const std::string body =
1125 HasSubstr("GLSL.std.450 " + ext_inst_name +
1131 ::testing::ValuesIn(std::vector<std::string>{
1153 const std::string ext_inst_name = GetParam();
1154 std::ostringstream ss;
1164 const std::string ext_inst_name = GetParam();
1165 const std::string body =
1171 HasSubstr("GLSL.std.450 " + ext_inst_name +
1177 const std::string ext_inst_name = GetParam();
1178 const std::string body =
1184 HasSubstr("GLSL.std.450 " + ext_inst_name +
1190 const std::string ext_inst_name = GetParam();
1191 const std::string body =
1197 HasSubstr("GLSL.std.450 " + ext_inst_name +
1203 const std::string ext_inst_name = GetParam();
1204 const std::string body =
1210 HasSubstr("GLSL.std.450 " + ext_inst_name +
1216 ::testing::ValuesIn(std::vector<std::string>{
1222 const std::string body = R"(
1231 const std::string body = R"(
1238 HasSubstr("GLSL.std.450 Determinant: "
1244 const std::string body = R"(
1251 HasSubstr("GLSL.std.450 Determinant: "
1256 const std::string body = R"(
1263 HasSubstr("GLSL.std.450 Determinant: "
1268 const std::string body = R"(
1277 const std::string body = R"(
1284 HasSubstr("GLSL.std.450 MatrixInverse: "
1290 const std::string body = R"(
1297 HasSubstr("GLSL.std.450 MatrixInverse: "
1302 const std::string body = R"(
1309 HasSubstr("GLSL.std.450 MatrixInverse: "
1314 const std::string body = R"(
1324 const std::string body = R"(
1331 HasSubstr("GLSL.std.450 Modf: "
1337 const std::string body = R"(
1344 HasSubstr("GLSL.std.450 Modf: "
1349 const std::string body = R"(
1356 HasSubstr("GLSL.std.450 Modf: "
1361 const std::string body = R"(
1368 HasSubstr("GLSL.std.450 Modf: "
1374 const std::string body = R"(
1384 const std::string body = R"(
1391 HasSubstr("GLSL.std.450 ModfStruct: "
1397 const std::string body = R"(
1404 HasSubstr("GLSL.std.450 ModfStruct: "
1410 const std::string body = R"(
1417 HasSubstr("GLSL.std.450 ModfStruct: "
1423 const std::string body = R"(
1430 HasSubstr("GLSL.std.450 ModfStruct: "
1436 const std::string body = R"(
1443 HasSubstr("GLSL.std.450 ModfStruct: "
1449 const std::string body = R"(
1459 const std::string body = R"(
1466 HasSubstr("GLSL.std.450 Frexp: "
1472 const std::string body = R"(
1479 HasSubstr("GLSL.std.450 Frexp: "
1484 const std::string body = R"(
1491 HasSubstr("GLSL.std.450 Frexp: "
1496 const std::string body = R"(
1503 HasSubstr("GLSL.std.450 Frexp: "
1509 const std::string body = R"(
1516 HasSubstr("GLSL.std.450 Frexp: "
1522 const std::string body = R"(
1533 const std::string body = R"(
1540 HasSubstr("GLSL.std.450 Ldexp: "
1546 const std::string body = R"(
1553 HasSubstr("GLSL.std.450 Ldexp: "
1558 const std::string body = R"(
1565 HasSubstr("GLSL.std.450 Ldexp: "
1571 const std::string body = R"(
1578 HasSubstr("GLSL.std.450 Ldexp: "
1584 const std::string body = R"(
1591 HasSubstr("GLSL.std.450 Ldexp: "
1597 const std::string body = R"(
1607 const std::string body = R"(
1614 HasSubstr("GLSL.std.450 FrexpStruct: "
1622 const std::string body = R"(
1629 HasSubstr("GLSL.std.450 FrexpStruct: "
1637 const std::string body = R"(
1644 HasSubstr("GLSL.std.450 FrexpStruct: "
1652 const std::string body = R"(
1659 HasSubstr("GLSL.std.450 FrexpStruct: "
1667 const std::string body = R"(
1674 HasSubstr("GLSL.std.450 FrexpStruct: "
1681 const std::string body = R"(
1685 const std::string extension = R"(
1695 const std::string body = R"(
1702 HasSubstr("GLSL.std.450 FrexpStruct: "
1710 const std::string ext_inst_name = GetParam();
1714 const std::string vec_str =
1717 std::ostringstream body;
1727 const std::string ext_inst_name = GetParam();
1731 const std::string vec_str =
1734 std::ostringstream body;
1738 std::ostringstream expected;
1739 expected << "GLSL.std.450 " << ext_inst_name
1749 const std::string ext_inst_name = GetParam();
1753 const std::string vec_str =
1756 std::ostringstream body;
1759 std::ostringstream expected;
1760 expected << "GLSL.std.450 " << ext_inst_name
1770 const std::string ext_inst_name = GetParam();
1775 std::ostringstream body;
1779 std::ostringstream expected;
1780 expected << "GLSL.std.450 " << ext_inst_name
1790 const std::string ext_inst_name = GetParam();
1794 const std::string vec_str =
1797 std::ostringstream body;
1801 std::ostringstream expected;
1802 expected << "GLSL.std.450 " << ext_inst_name
1812 const std::string ext_inst_name = GetParam();
1816 const std::string vec_str =
1819 std::ostringstream body;
1823 std::ostringstream expected;
1824 expected << "GLSL.std.450 " << ext_inst_name
1834 const std::string ext_inst_name = GetParam();
1838 const std::string vec_str =
1841 std::ostringstream body;
1845 std::ostringstream expected;
1846 expected << "GLSL.std.450 " << ext_inst_name
1856 ::testing::ValuesIn(std::vector<std::string>{
1865 const std::string body = R"(
1874 const std::string body = R"(
1881 HasSubstr("GLSL.std.450 PackDouble2x32: expected Result Type to "
1886 const std::string body = R"(
1893 HasSubstr("GLSL.std.450 PackDouble2x32: expected Result Type to "
1898 const std::string body = R"(
1905 HasSubstr("GLSL.std.450 PackDouble2x32: expected operand V to be "
1910 const std::string body = R"(
1917 HasSubstr("GLSL.std.450 PackDouble2x32: expected operand V to be "
1922 const std::string body = R"(
1929 HasSubstr("GLSL.std.450 PackDouble2x32: expected operand V to be "
1934 const std::string body = R"(
1941 HasSubstr("GLSL.std.450 PackDouble2x32: expected operand V to be "
1946 const std::string ext_inst_name = GetParam();
1950 const std::string result_type_str =
1953 std::ostringstream body;
1963 const std::string ext_inst_name = GetParam();
1967 const std::string result_type_str = "%f32";
1969 std::ostringstream body;
1973 std::ostringstream expected;
1974 expected << "GLSL.std.450 " << ext_inst_name
1984 const std::string ext_inst_name = GetParam();
1988 const std::string result_type_str =
1991 std::ostringstream body;
1995 std::ostringstream expected;
1996 expected << "GLSL.std.450 " << ext_inst_name
2006 const std::string ext_inst_name = GetParam();
2010 const std::string result_type_str =
2013 std::ostringstream body;
2017 std::ostringstream expected;
2018 expected << "GLSL.std.450 " << ext_inst_name
2028 const std::string ext_inst_name = GetParam();
2032 const std::string result_type_str =
2035 std::ostringstream body;
2039 std::ostringstream expected;
2040 expected << "GLSL.std.450 " << ext_inst_name
2050 const std::string ext_inst_name = GetParam();
2054 const std::string result_type_str =
2057 std::ostringstream body;
2061 std::ostringstream expected;
2062 expected << "GLSL.std.450 " << ext_inst_name
2072 const std::string ext_inst_name = GetParam();
2077 const std::string result_type_str =
2080 std::ostringstream body;
2084 std::ostringstream expected;
2085 expected << "GLSL.std.450 " << ext_inst_name
2095 ::testing::ValuesIn(std::vector<std::string>{
2104 const std::string body = R"(
2113 const std::string body = R"(
2120 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected Result Type "
2125 const std::string body = R"(
2132 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected Result Type "
2137 const std::string body = R"(
2144 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected Result Type "
2149 const std::string body = R"(
2156 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected Result Type "
2161 const std::string body = R"(
2168 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected operand V to "
2173 const std::string body = R"(
2180 HasSubstr("GLSL.std.450 UnpackDouble2x32: expected operand V to "
2185 const std::string body = R"(
2196 const std::string body = R"(
2203 HasSubstr("GLSL.std.450 Length: "
2208 const std::string body = R"(
2215 HasSubstr("GLSL.std.450 Length: "
2221 const std::string body = R"(
2228 HasSubstr("GLSL.std.450 Length: "
2234 const std::string body = R"(
2245 const std::string body = R"(
2252 HasSubstr("GLSL.std.450 Distance: "
2257 const std::string body = R"(
2264 HasSubstr("GLSL.std.450 Distance: "
2270 const std::string body = R"(
2277 HasSubstr("GLSL.std.450 Distance: "
2283 const std::string body = R"(
2290 HasSubstr("GLSL.std.450 Distance: "
2296 const std::string body = R"(
2303 HasSubstr("GLSL.std.450 Distance: "
2309 const std::string body = R"(
2316 HasSubstr("GLSL.std.450 Distance: "
2322 const std::string body = R"(
2331 const std::string body = R"(
2338 HasSubstr("GLSL.std.450 Cross: "
2343 const std::string body = R"(
2350 HasSubstr("GLSL.std.450 Cross: "
2355 const std::string body = R"(
2362 HasSubstr("GLSL.std.450 Cross: "
2367 const std::string body = R"(
2374 HasSubstr("GLSL.std.450 Cross: "
2379 const std::string body = R"(
2389 const std::string body = R"(
2396 HasSubstr("GLSL.std.450 Refract: "
2402 const std::string body = R"(
2409 HasSubstr("GLSL.std.450 Refract: "
2415 const std::string body = R"(
2422 HasSubstr("GLSL.std.450 Refract: "
2428 const std::string body = R"(
2435 HasSubstr("GLSL.std.450 Refract: "
2441 const std::string body = R"(
2451 const std::string body = R"(
2458 HasSubstr("GLSL.std.450 Refract: "
2463 const std::string body = R"(
2474 const std::string body = R"(
2488 const std::string body = R"(
2497 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2503 const std::string body = R"(
2512 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2517 const std::string body = R"(
2524 HasSubstr("GLSL.std.450 InterpolateAtCentroid requires "
2529 const std::string body = R"(
2537 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2543 const std::string body = R"(
2551 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2557 const std::string body = R"(
2565 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2570 const std::string body = R"(
2578 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2584 const std::string body = R"(
2592 HasSubstr("GLSL.std.450 InterpolateAtCentroid: "
2597 const std::string body = R"(
2605 HasSubstr("GLSL.std.450 InterpolateAtCentroid requires "
2610 const std::string body = R"(
2621 const std::string body = R"(
2635 const std::string body = R"(
2644 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2650 const std::string body = R"(
2659 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2664 const std::string body = R"(
2671 HasSubstr("GLSL.std.450 InterpolateAtSample requires "
2676 const std::string body = R"(
2684 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2690 const std::string body = R"(
2698 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2704 const std::string body = R"(
2712 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2717 const std::string body = R"(
2725 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2731 const std::string body = R"(
2739 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2744 const std::string body = R"(
2752 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2757 const std::string body = R"(
2765 HasSubstr("GLSL.std.450 InterpolateAtSample: "
2770 const std::string body = R"(
2778 HasSubstr("GLSL.std.450 InterpolateAtSample requires "
2783 const std::string body = R"(
2794 const std::string body = R"(
2808 const std::string body = R"(
2817 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2823 const std::string body = R"(
2832 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2837 const std::string body = R"(
2844 HasSubstr("GLSL.std.450 InterpolateAtOffset requires "
2849 const std::string body = R"(
2857 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2863 const std::string body = R"(
2871 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2877 const std::string body = R"(
2885 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2890 const std::string body = R"(
2898 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2904 const std::string body = R"(
2912 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2917 const std::string body = R"(
2925 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2930 const std::string body = R"(
2938 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2943 const std::string body = R"(
2951 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2956 const std::string body = R"(
2964 HasSubstr("GLSL.std.450 InterpolateAtOffset: "
2969 const std::string body = R"(
2977 HasSubstr("GLSL.std.450 InterpolateAtOffset requires "
2982 const std::string ext_inst_name = GetParam();
2983 std::ostringstream ss;
2995 const std::string ext_inst_name = GetParam();
2996 const std::string body =
3002 HasSubstr("OpenCL.std " + ext_inst_name +
3008 const std::string ext_inst_name = GetParam();
3009 const std::string body =
3015 HasSubstr("OpenCL.std " + ext_inst_name +
3022 ::testing::ValuesIn(std::vector<std::string>{
3043 const std::string ext_inst_name = GetParam();
3044 std::ostringstream ss;
3056 const std::string ext_inst_name = GetParam();
3057 const std::string body =
3063 HasSubstr("OpenCL.std " + ext_inst_name +
3069 const std::string ext_inst_name = GetParam();
3070 const std::string body =
3076 HasSubstr("OpenCL.std " + ext_inst_name +
3082 const std::string ext_inst_name = GetParam();
3083 const std::string body =
3089 HasSubstr("OpenCL.std " + ext_inst_name +
3095 ::testing::ValuesIn(std::vector<std::string>{
3106 const std::string ext_inst_name = GetParam();
3107 std::ostringstream ss;
3119 const std::string ext_inst_name = GetParam();
3120 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3126 HasSubstr("OpenCL.std " + ext_inst_name +
3132 const std::string ext_inst_name = GetParam();
3133 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3139 HasSubstr("OpenCL.std " + ext_inst_name +
3145 const std::string ext_inst_name = GetParam();
3146 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3152 HasSubstr("OpenCL.std " + ext_inst_name +
3158 const std::string ext_inst_name = GetParam();
3159 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3165 HasSubstr("OpenCL.std " + ext_inst_name +
3171 ::testing::ValuesIn(std::vector<std::string>{
3180 const std::string ext_inst_name = GetParam();
3181 std::ostringstream ss;
3199 const std::string ext_inst_name = GetParam();
3200 const std::string body =
3206 HasSubstr("OpenCL.std " + ext_inst_name +
3212 const std::string ext_inst_name = GetParam();
3213 const std::string body =
3220 HasSubstr("OpenCL.std " + ext_inst_name +
3225 const std::string ext_inst_name = GetParam();
3226 const std::string body =
3233 HasSubstr("OpenCL.std " + ext_inst_name +
3238 ::testing::ValuesIn(std::vector<std::string>{
3247 const std::string ext_inst_name = GetParam();
3248 std::ostringstream ss;
3272 const std::string ext_inst_name = GetParam();
3273 const std::string body =
3279 HasSubstr("OpenCL.std " + ext_inst_name +
3285 const std::string ext_inst_name = GetParam();
3286 const std::string body =
3293 HasSubstr("OpenCL.std " + ext_inst_name +
3298 const std::string ext_inst_name = GetParam();
3299 const std::string body =
3306 HasSubstr("OpenCL.std " + ext_inst_name +
3311 const std::string ext_inst_name = GetParam();
3312 const std::string body =
3319 HasSubstr("OpenCL.std " + ext_inst_name +
3324 const std::string ext_inst_name = GetParam();
3325 const std::string body =
3332 HasSubstr("OpenCL.std " + ext_inst_name +
3337 ::testing::ValuesIn(std::vector<std::string>{
3358 const std::string ext_inst_name = GetParam();
3359 std::ostringstream ss;
3383 const std::string ext_inst_name = GetParam();
3384 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3390 HasSubstr("OpenCL.std " + ext_inst_name +
3396 const std::string ext_inst_name = GetParam();
3397 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3404 HasSubstr("OpenCL.std " + ext_inst_name +
3409 const std::string ext_inst_name = GetParam();
3410 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3417 HasSubstr("OpenCL.std " + ext_inst_name +
3422 const std::string ext_inst_name = GetParam();
3423 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3430 HasSubstr("OpenCL.std " + ext_inst_name +
3435 const std::string ext_inst_name = GetParam();
3436 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3443 HasSubstr("OpenCL.std " + ext_inst_name +
3448 const std::string ext_inst_name = GetParam();
3449 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3456 HasSubstr("OpenCL.std " + ext_inst_name +
3461 const std::string ext_inst_name = GetParam();
3462 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3469 HasSubstr("OpenCL.std " + ext_inst_name +
3474 ::testing::ValuesIn(std::vector<std::string>{
3485 const std::string ext_inst_name = GetParam();
3486 std::ostringstream ss;
3508 const std::string ext_inst_name = GetParam();
3509 const std::string body =
3517 "OpenCL.std " + ext_inst_name +
3522 const std::string ext_inst_name = GetParam();
3523 const std::string body =
3531 "OpenCL.std " + ext_inst_name +
3536 const std::string ext_inst_name = GetParam();
3537 const std::string body =
3544 HasSubstr("OpenCL.std " + ext_inst_name +
3549 const std::string ext_inst_name = GetParam();
3550 const std::string body =
3557 HasSubstr("OpenCL.std " + ext_inst_name +
3562 const std::string ext_inst_name = GetParam();
3563 const std::string body =
3570 HasSubstr("OpenCL.std " + ext_inst_name +
3575 const std::string ext_inst_name = GetParam();
3576 const std::string body =
3583 HasSubstr("OpenCL.std " + ext_inst_name +
3588 ::testing::ValuesIn(std::vector<std::string>{
3594 const std::string ext_inst_name = GetParam();
3595 std::ostringstream ss;
3617 const std::string ext_inst_name = GetParam();
3618 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3626 "OpenCL.std " + ext_inst_name +
3631 const std::string ext_inst_name = GetParam();
3632 const std::string body = "%val1 = OpExtInst %u64 %extinst " + ext_inst_name +
3640 "OpenCL.std " + ext_inst_name +
3645 const std::string ext_inst_name = GetParam();
3646 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3653 HasSubstr("OpenCL.std " + ext_inst_name +
3658 const std::string ext_inst_name = GetParam();
3659 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3666 HasSubstr("OpenCL.std " + ext_inst_name +
3671 const std::string ext_inst_name = GetParam();
3672 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3679 HasSubstr("OpenCL.std " + ext_inst_name +
3684 const std::string ext_inst_name = GetParam();
3685 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3692 HasSubstr("OpenCL.std " + ext_inst_name +
3697 const std::string ext_inst_name = GetParam();
3698 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3705 HasSubstr("OpenCL.std " + ext_inst_name +
3710 const std::string ext_inst_name = GetParam();
3711 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3718 HasSubstr("OpenCL.std " + ext_inst_name +
3723 ::testing::ValuesIn(std::vector<std::string>{
3729 const std::string body = R"(
3739 const std::string body = R"(
3746 HasSubstr("OpenCL.std cross: "
3751 const std::string body = R"(
3758 HasSubstr("OpenCL.std cross: "
3763 const std::string body = R"(
3770 HasSubstr("OpenCL.std cross: "
3775 const std::string body = R"(
3782 HasSubstr("OpenCL.std cross: "
3787 const std::string ext_inst_name = GetParam();
3788 std::ostringstream ss;
3798 const std::string ext_inst_name = GetParam();
3799 const std::string body =
3805 HasSubstr("OpenCL.std " + ext_inst_name +
3811 const std::string ext_inst_name = GetParam();
3812 const std::string body =
3818 HasSubstr("OpenCL.std " + ext_inst_name +
3824 const std::string ext_inst_name = GetParam();
3825 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3832 HasSubstr("OpenCL.std " + ext_inst_name +
3838 const std::string ext_inst_name = GetParam();
3839 const std::string body =
3845 HasSubstr("OpenCL.std " + ext_inst_name +
3852 ::testing::ValuesIn(std::vector<std::string>{
3858 const std::string ext_inst_name = GetParam();
3859 std::ostringstream ss;
3872 const std::string ext_inst_name = GetParam();
3873 const std::string body = "%val1 = OpExtInst %u32 %extinst " + ext_inst_name +
3879 HasSubstr("OpenCL.std " + ext_inst_name +
3885 const std::string ext_inst_name = GetParam();
3886 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3893 HasSubstr("OpenCL.std " + ext_inst_name +
3899 const std::string ext_inst_name = GetParam();
3900 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3907 HasSubstr("OpenCL.std " + ext_inst_name +
3913 const std::string ext_inst_name = GetParam();
3914 const std::string body = "%val1 = OpExtInst %f32 %extinst " + ext_inst_name +
3922 "OpenCL.std " + ext_inst_name +
3928 const std::string ext_inst_name = GetParam();
3929 const std::string body = "%val1 = OpExtInst %f64 %extinst " + ext_inst_name +
3935 HasSubstr("OpenCL.std " + ext_inst_name +
3941 ::testing::ValuesIn(std::vector<std::string>{
3947 const std::string ext_inst_name = GetParam();
3948 std::ostringstream ss;
3960 const std::string ext_inst_name = GetParam();
3961 const std::string body =
3968 HasSubstr("OpenCL.std " + ext_inst_name +
3974 const std::string ext_inst_name = GetParam();
3975 const std::string body = "%val1 = OpExtInst %f32vec8 %extinst " +
3982 HasSubstr("OpenCL.std " + ext_inst_name +
3988 const std::string ext_inst_name = GetParam();
3989 const std::string body =
3995 HasSubstr("OpenCL.std " + ext_inst_name +
4001 ::testing::ValuesIn(std::vector<std::string>{
4007 const std::string body = R"(
4020 const std::string body = R"(
4029 "OpenCL.std bitselect: "
4034 const std::string body = R"(
4042 HasSubstr("OpenCL.std bitselect: "
4047 const std::string body = R"(
4055 HasSubstr("OpenCL.std bitselect: "
4060 const std::string body = R"(
4068 HasSubstr("OpenCL.std bitselect: "
4073 const std::string body = R"(
4086 const std::string body = R"(
4095 "OpenCL.std select: "
4100 const std::string body = R"(
4107 HasSubstr("OpenCL.std select: "
4112 const std::string body = R"(
4119 HasSubstr("OpenCL.std select: "
4124 const std::string body = R"(
4131 HasSubstr("OpenCL.std select: "
4136 const std::string body = R"(
4143 HasSubstr("OpenCL.std select: "
4149 const std::string body = R"(
4158 "OpenCL.std select: "
4163 const std::string ext_inst_name = GetParam();
4164 const std::string rounding_mode =
4167 std::ostringstream ss;
4169 if (std::string::npos == ext_inst_name.find("halfn")) {
4188 const std::string ext_inst_name = GetParam();
4189 const std::string rounding_mode =
4192 std::ostringstream ss;
4194 if (std::string::npos == ext_inst_name.find("halfn")) {
4213 const std::string ext_inst_name = GetParam();
4214 const std::string rounding_mode =
4217 std::ostringstream ss;
4219 if (std::string::npos == ext_inst_name.find("halfn")) {
4230 HasSubstr("OpenCL.std " + ext_inst_name +
4235 const std::string ext_inst_name = GetParam();
4236 const std::string rounding_mode =
4239 std::ostringstream ss;
4241 if (std::string::npos == ext_inst_name.find("halfn")) {
4247 HasSubstr("OpenCL.std " + ext_inst_name +
4255 HasSubstr("OpenCL.std " + ext_inst_name +
4261 const std::string ext_inst_name = GetParam();
4262 const std::string rounding_mode =
4265 std::ostringstream ss;
4267 if (std::string::npos == ext_inst_name.find("halfn")) {
4278 HasSubstr("OpenCL.std " + ext_inst_name +
4283 const std::string ext_inst_name = GetParam();
4284 const std::string rounding_mode =
4287 std::ostringstream ss;
4289 if (std::string::npos == ext_inst_name.find("halfn")) {
4301 HasSubstr("OpenCL.std " + ext_inst_name +
4308 const std::string ext_inst_name = GetParam();
4309 const std::string rounding_mode =
4312 std::ostringstream ss;
4313 if (std::string::npos == ext_inst_name.find("halfn")) {
4328 const std::string ext_inst_name = GetParam();
4329 const std::string rounding_mode =
4332 std::ostringstream ss;
4335 if (std::string::npos == ext_inst_name.find("halfn")) {
4346 HasSubstr("OpenCL.std " + ext_inst_name +
4352 const std::string ext_inst_name = GetParam();
4353 const std::string rounding_mode =
4356 std::ostringstream ss;
4358 if (std::string::npos == ext_inst_name.find("halfn")) {
4370 HasSubstr("OpenCL.std " + ext_inst_name +
4375 const std::string ext_inst_name = GetParam();
4376 const std::string rounding_mode =
4379 std::ostringstream ss;
4381 if (std::string::npos == ext_inst_name.find("halfn")) {
4393 HasSubstr("OpenCL.std " + ext_inst_name +
4398 ::testing::ValuesIn(std::vector<std::string>{
4408 const std::string ext_inst_name = GetParam();
4410 std::ostringstream ss;
4424 const std::string ext_inst_name = GetParam();
4426 std::ostringstream ss;
4440 const std::string ext_inst_name = GetParam();
4442 std::ostringstream ss;
4450 HasSubstr("OpenCL.std " + ext_inst_name +
4455 const std::string ext_inst_name = GetParam();
4457 std::ostringstream ss;
4465 HasSubstr("OpenCL.std " + ext_inst_name +
4470 const std::string ext_inst_name = GetParam();
4472 std::ostringstream ss;
4481 HasSubstr("OpenCL.std " + ext_inst_name +
4487 const std::string ext_inst_name = GetParam();
4489 std::ostringstream ss;
4500 const std::string ext_inst_name = GetParam();
4502 std::ostringstream ss;
4511 HasSubstr("OpenCL.std " + ext_inst_name +
4517 const std::string ext_inst_name = GetParam();
4519 std::ostringstream ss;
4528 HasSubstr("OpenCL.std " + ext_inst_name +
4533 const std::string ext_inst_name = GetParam();
4535 std::ostringstream ss;
4544 HasSubstr("OpenCL.std " + ext_inst_name +
4549 const std::string ext_inst_name = GetParam();
4551 std::ostringstream ss;
4559 HasSubstr("OpenCL.std " + ext_inst_name +
4565 ::testing::ValuesIn(std::vector<std::string>{
4571 std::ostringstream ss;
4583 std::ostringstream ss;
4595 std::ostringstream ss;
4607 std::ostringstream ss;
4619 std::ostringstream ss;
4628 HasSubstr("OpenCL.std vloadn: "
4633 std::ostringstream ss;
4641 HasSubstr("OpenCL.std vloadn can only be used with physical "
4646 std::ostringstream ss;
4656 "OpenCL.std vloadn: expected operand Offset to be of type size_t "
4661 std::ostringstream ss;
4674 std::ostringstream ss;
4681 HasSubstr("OpenCL.std vloadn: expected operand P storage class "
4687 std::ostringstream ss;
4695 HasSubstr("OpenCL.std vloadn: expected operand P data type to be "
4700 std::ostringstream ss;
4708 HasSubstr("OpenCL.std vloadn: expected literal N to be equal to "
4713 std::ostringstream ss;
4724 std::ostringstream ss;
4735 std::ostringstream ss;
4743 HasSubstr("OpenCL.std vload_half: "
4748 std::ostringstream ss;
4756 HasSubstr("OpenCL.std vload_half can only be used with physical "
4761 std::ostringstream ss;
4771 "OpenCL.std vload_half: expected operand Offset to be of type size_t "
4776 std::ostringstream ss;
4788 std::ostringstream ss;
4797 "OpenCL.std vload_half: expected operand P storage class to be "
4802 std::ostringstream ss;
4810 HasSubstr("OpenCL.std vload_half: expected operand P data type "
4815 std::ostringstream ss;
4823 HasSubstr("OpenCL.std vload_half: expected operand P data type "
4828 std::ostringstream ss;
4840 std::ostringstream ss;
4852 std::ostringstream ss;
4864 std::ostringstream ss;
4876 std::ostringstream ss;
4884 HasSubstr("OpenCL.std vstoren: expected Result Type to be void"));
4888 std::ostringstream ss;
4898 "OpenCL.std vstoren: expected Data to be an int or float vector"));
4902 std::ostringstream ss;
4910 HasSubstr("OpenCL.std vstoren can only be used with physical "
4915 std::ostringstream ss;
4925 "OpenCL.std vstoren: expected operand Offset to be of type size_t "
4930 std::ostringstream ss;
4941 std::ostringstream ss;
4950 HasSubstr("OpenCL.std vstoren: expected operand P storage class "
4955 std::ostringstream ss;
4963 HasSubstr("OpenCL.std vstoren: expected operand P data type to "
4968 const std::string body = R"(
4980 const std::string body = R"(
4988 HasSubstr("OpenCL.std shuffle: "
4993 const std::string body = R"(
5001 HasSubstr("OpenCL.std shuffle: "
5006 const std::string body = R"(
5013 HasSubstr("OpenCL.std shuffle: "
5018 const std::string body = R"(
5025 HasSubstr("OpenCL.std shuffle: "
5030 const std::string body = R"(
5039 "OpenCL.std shuffle: "
5044 const std::string body = R"(
5051 HasSubstr("OpenCL.std shuffle: "
5056 const std::string body = R"(
5063 HasSubstr("OpenCL.std shuffle: "
5069 const std::string body = R"(
5076 HasSubstr("OpenCL.std shuffle: "
5082 const std::string body = R"(
5094 const std::string body = R"(
5102 HasSubstr("OpenCL.std shuffle2: "
5107 const std::string body = R"(
5115 HasSubstr("OpenCL.std shuffle2: "
5120 const std::string body = R"(
5127 HasSubstr("OpenCL.std shuffle2: "
5132 const std::string body = R"(
5139 HasSubstr("OpenCL.std shuffle2: "
5144 const std::string body = R"(
5151 HasSubstr("OpenCL.std shuffle2: "
5156 const std::string body = R"(
5165 "OpenCL.std shuffle2: "
5170 const std::string body = R"(
5177 HasSubstr("OpenCL.std shuffle2: "
5182 const std::string body = R"(
5189 HasSubstr("OpenCL.std shuffle2: "
5195 const std::string body = R"(
5202 HasSubstr("OpenCL.std shuffle2: "
5208 const std::string body = R"(
5218 const std::string body = R"(
5228 "OpenCL.std printf: expected Result Type to be a 32-bit int type"));
5232 const std::string body = R"(
5242 "OpenCL.std printf: expected Result Type to be a 32-bit int type"));
5246 const std::string body = R"(
5259 const std::string body = R"(
5268 HasSubstr("OpenCL.std printf: expected Format storage class to "
5273 const std::string body = R"(
5283 "OpenCL.std printf: expected Format data type to be 8-bit int"));
5287 const std::string body = R"(
5297 const std::string body = R"(
5307 const std::string body = R"(
5317 const std::string body = R"(
5327 const std::string body = R"(
5336 HasSubstr("OpenCL.std prefetch: expected Result Type to be void"));
5340 const std::string body = R"(
5352 const std::string body = R"(
5360 HasSubstr("OpenCL.std prefetch: expected operand Ptr storage "
5365 const std::string body = R"(
5373 HasSubstr("OpenCL.std prefetch: expected Ptr data type to be int "
5378 const std::string body = R"(
5386 HasSubstr("OpenCL.std prefetch can only be used with physical "
5391 const std::string body = R"(
5399 HasSubstr("OpenCL.std prefetch: expected operand Num Elements to "
5405 const std::string ext_inst_name = GetParam();
5406 std::ostringstream ss;
5419 const std::string ext_inst_name = GetParam();
5420 std::ostringstream ss;
5429 HasSubstr("OpenCL.std " + ext_inst_name +
5434 const std::string ext_inst_name = GetParam();
5435 std::ostringstream ss;
5444 HasSubstr("OpenCL.std " + ext_inst_name +
5449 const std::string ext_inst_name = GetParam();
5450 std::ostringstream ss;
5458 HasSubstr("OpenCL.std " + ext_inst_name +
5463 const std::string ext_inst_name = GetParam();
5464 std::ostringstream ss;
5472 HasSubstr("OpenCL.std " + ext_inst_name +
5478 const std::string ext_inst_name = GetParam();
5479 std::ostringstream ss;
5489 "OpenCL.std " + ext_inst_name +
5494 ::testing::ValuesIn(std::vector<std::string>{
5501 const std::string body = R"(
5513 const std::string body = R"(
5522 HasSubstr("OpenCL.std remquo: "
5527 const std::string body = R"(
5536 HasSubstr("OpenCL.std remquo: "
5541 const std::string body = R"(
5550 HasSubstr("OpenCL.std remquo: "
5555 const std::string body = R"(
5562 HasSubstr("OpenCL.std remquo: "
5567 const std::string body = R"(
5575 HasSubstr("OpenCL.std remquo: "
5581 const std::string body = R"(
5589 HasSubstr("OpenCL.std remquo: "
5595 const std::string body = R"(
5602 HasSubstr("OpenCL.std remquo: "
5608 const std::string body = R"(
5617 HasSubstr("OpenCL.std remquo: "
5623 const std::string ext_inst_name = GetParam();
5624 std::ostringstream ss;
5637 const std::string ext_inst_name = GetParam();
5638 std::ostringstream ss;
5647 HasSubstr("OpenCL.std " + ext_inst_name +
5652 const std::string ext_inst_name = GetParam();
5653 std::ostringstream ss;
5662 HasSubstr("OpenCL.std " + ext_inst_name +
5667 const std::string ext_inst_name = GetParam();
5668 std::ostringstream ss;
5675 HasSubstr("OpenCL.std " + ext_inst_name +
5680 const std::string ext_inst_name = GetParam();
5681 std::ostringstream ss;
5689 HasSubstr("OpenCL.std " + ext_inst_name +
5695 const std::string ext_inst_name = GetParam();
5696 std::ostringstream ss;
5704 HasSubstr("OpenCL.std " + ext_inst_name +
5710 const std::string ext_inst_name = GetParam();
5711 std::ostringstream ss;
5719 HasSubstr("OpenCL.std " + ext_inst_name +
5725 const std::string ext_inst_name = GetParam();
5726 std::ostringstream ss;
5734 HasSubstr("OpenCL.std " + ext_inst_name +
5740 ::testing::ValuesIn(std::vector<std::string>{
5746 const std::string body = R"(
5756 const std::string body = R"(
5765 "OpenCL.std ilogb: "
5770 const std::string body = R"(
5777 HasSubstr("OpenCL.std ilogb: "
5782 const std::string body = R"(
5789 HasSubstr("OpenCL.std ilogb: "
5795 const std::string body = R"(
5805 const std::string body = R"(
5813 HasSubstr("OpenCL.std nan: "
5818 const std::string body = R"(
5825 HasSubstr("OpenCL.std nan: "
5830 const std::string body = R"(
5837 HasSubstr("OpenCL.std nan: "
5843 const std::string body = R"(
5851 HasSubstr("OpenCL.std nan: "
5856 const std::string ext_inst_name = GetParam();
5857 std::ostringstream ss;
5868 const std::string ext_inst_name = GetParam();
5869 std::ostringstream ss;
5877 HasSubstr("OpenCL.std " + ext_inst_name +
5882 const std::string ext_inst_name = GetParam();
5883 std::ostringstream ss;
5891 HasSubstr("OpenCL.std " + ext_inst_name +
5896 const std::string ext_inst_name = GetParam();
5897 std::ostringstream ss;
5905 HasSubstr("OpenCL.std " + ext_inst_name +
5910 const std::string ext_inst_name = GetParam();
5911 std::ostringstream ss;
5919 HasSubstr("OpenCL.std " + ext_inst_name +
5924 const std::string ext_inst_name = GetParam();
5925 std::ostringstream ss;
5932 HasSubstr("OpenCL.std " + ext_inst_name +
5938 ::testing::ValuesIn(std::vector<std::string>{
5945 const std::string ext_inst_name = GetParam();
5946 std::ostringstream ss;
5960 const std::string ext_inst_name = GetParam();
5961 std::ostringstream ss;
5969 HasSubstr("OpenCL.std " + ext_inst_name +
5974 const std::string ext_inst_name = GetParam();
5975 std::ostringstream ss;
5983 "OpenCL.std " + ext_inst_name +
5988 const std::string ext_inst_name = GetParam();
5989 std::ostringstream ss;
5996 HasSubstr("OpenCL.std " + ext_inst_name +
6001 const std::string ext_inst_name = GetParam();
6002 std::ostringstream ss;
6009 HasSubstr("OpenCL.std " + ext_inst_name +
6015 const std::string ext_inst_name = GetParam();
6016 std::ostringstream ss;
6024 HasSubstr("OpenCL.std " + ext_inst_name +
6030 ::testing::ValuesIn(std::vector<std::string>{
6036 const std::string text = R"(
6051 const std::string text = R"(
6063 const std::string text = R"(
6082 const std::string text = R"(
6101 const std::string text = R"(
6121 const std::string text = R"(
6143 const std::string text = R"(
6167 const std::string text = R"(
6195 const std::string text = R"(
6219 const std::string text = R"(
6243 const std::string text = R"(
6267 const std::string text = R"(
6294 const std::string text = R"(
6323 const std::string text = R"(
6351 const std::string text = R"(
6379 const std::string text = R"(
6406 const std::string text = R"(
6434 spvtest::ValidateBase<std::pair<std::string, std::string>>;
6438 ::testing::ValuesIn(std::vector<std::pair<std::string, std::string>>{
6439 std::make_pair("ArgumentStorageBuffer", "%int_0 %int_0"),
6440 std::make_pair("ArgumentUniform", "%int_0 %int_0"),
6441 std::make_pair("ArgumentPodStorageBuffer",
6443 std::make_pair("ArgumentPodUniform", "%int_0 %int_0 %int_0 %int_4"),
6444 std::make_pair("ArgumentPodPushConstant", "%int_0 %int_4"),
6445 std::make_pair("ArgumentSampledImage", "%int_0 %int_0"),
6446 std::make_pair("ArgumentStorageImage", "%int_0 %int_0"),
6447 std::make_pair("ArgumentSampler", "%int_0 %int_0"),
6448 std::make_pair("ArgumentWorkgroup", "%int_0 %int_0"),
6449 std::make_pair("ArgumentPointerPushConstant", "%int_0 %int_4"),
6450 std::make_pair("ArgumentPointerUniform", "%int_0 %int_0 %int_0 %int_4"),
6451 std::make_pair("ArgumentStorageTexelBuffer", "%int_0 %int_0"),
6452 std::make_pair("ArgumentUniformTexelBuffer", "%int_0 %int_0")}));
6455 const std::string ext_inst = std::get<0>(GetParam());
6456 const std::string extra = std::get<1>(GetParam());
6457 const std::string text = R"(
6484 const std::string ext_inst = std::get<0>(GetParam());
6485 const std::string extra = std::get<1>(GetParam());
6486 const std::string text = R"(
6516 const std::string ext_inst = std::get<0>(GetParam());
6517 const std::string extra = std::get<1>(GetParam());
6518 const std::string text = R"(
6546 const std::string ext_inst = std::get<0>(GetParam());
6547 const std::string operands = std::get<1>(GetParam());
6548 const std::string text = R"(
6576 const std::string ext_inst = std::get<0>(GetParam());
6577 const std::string operands = std::get<1>(GetParam());
6578 const std::string text = R"(
6607 const std::string ext_inst = std::get<0>(GetParam());
6608 const std::string operands = std::get<1>(GetParam());
6609 const std::string text = R"(
6641 spvtest::ValidateBase<std::pair<std::string, std::string>>;
6645 ::testing::ValuesIn(std::vector<std::pair<std::string, std::string>>{
6646 std::make_pair("ArgumentStorageBuffer %decl %float_0 %int_0 %int_0",
6648 std::make_pair("ArgumentStorageBuffer %decl %null %int_0 %int_0",
6650 std::make_pair("ArgumentStorageBuffer %decl %int_0 %float_0 %int_0",
6652 std::make_pair("ArgumentStorageBuffer %decl %int_0 %null %int_0",
6654 std::make_pair("ArgumentStorageBuffer %decl %int_0 %int_0 %float_0",
6656 std::make_pair("ArgumentStorageBuffer %decl %int_0 %int_0 %null",
6658 std::make_pair("ArgumentUniform %decl %float_0 %int_0 %int_0",
6660 std::make_pair("ArgumentUniform %decl %null %int_0 %int_0", "Ordinal"),
6661 std::make_pair("ArgumentUniform %decl %int_0 %float_0 %int_0",
6663 std::make_pair("ArgumentUniform %decl %int_0 %null %int_0",
6665 std::make_pair("ArgumentUniform %decl %int_0 %int_0 %float_0",
6667 std::make_pair("ArgumentUniform %decl %int_0 %int_0 %null", "Binding"),
6668 std::make_pair("ArgumentSampledImage %decl %float_0 %int_0 %int_0",
6670 std::make_pair("ArgumentSampledImage %decl %null %int_0 %int_0",
6672 std::make_pair("ArgumentSampledImage %decl %int_0 %float_0 %int_0",
6674 std::make_pair("ArgumentSampledImage %decl %int_0 %null %int_0",
6676 std::make_pair("ArgumentSampledImage %decl %int_0 %int_0 %float_0",
6678 std::make_pair("ArgumentSampledImage %decl %int_0 %int_0 %null",
6680 std::make_pair("ArgumentStorageImage %decl %float_0 %int_0 %int_0",
6682 std::make_pair("ArgumentStorageImage %decl %null %int_0 %int_0",
6684 std::make_pair("ArgumentStorageImage %decl %int_0 %float_0 %int_0",
6686 std::make_pair("ArgumentStorageImage %decl %int_0 %null %int_0",
6688 std::make_pair("ArgumentStorageImage %decl %int_0 %int_0 %float_0",
6690 std::make_pair("ArgumentStorageImage %decl %int_0 %int_0 %null",
6692 std::make_pair("ArgumentSampler %decl %float_0 %int_0 %int_0",
6694 std::make_pair("ArgumentSampler %decl %null %int_0 %int_0", "Ordinal"),
6695 std::make_pair("ArgumentSampler %decl %int_0 %float_0 %int_0",
6697 std::make_pair("ArgumentSampler %decl %int_0 %null %int_0",
6699 std::make_pair("ArgumentSampler %decl %int_0 %int_0 %float_0",
6701 std::make_pair("ArgumentSampler %decl %int_0 %int_0 %null", "Binding"),
6702 std::make_pair("ArgumentPodStorageBuffer %decl %float_0 %int_0 %int_0 "
6705 std::make_pair(
6708 std::make_pair("ArgumentPodStorageBuffer %decl %int_0 %float_0 %int_0 "
6711 std::make_pair(
6714 std::make_pair("ArgumentPodStorageBuffer %decl %int_0 %int_0 %float_0 "
6717 std::make_pair(
6720 std::make_pair("ArgumentPodStorageBuffer %decl %int_0 %int_0 %int_0 "
6723 std::make_pair(
6726 std::make_pair("ArgumentPodStorageBuffer %decl %int_0 %int_0 %int_0 "
6729 std::make_pair(
6732 std::make_pair(
6735 std::make_pair(
6738 std::make_pair(
6741 std::make_pair(
6744 std::make_pair(
6747 std::make_pair(
6750 std::make_pair(
6753 std::make_pair(
6756 std::make_pair(
6759 std::make_pair(
6762 std::make_pair("ArgumentPodPushConstant %decl %float_0 %int_0 %int_4",
6764 std::make_pair("ArgumentPodPushConstant %decl %null %int_0 %int_4",
6766 std::make_pair("ArgumentPodPushConstant %decl %int_0 %float_0 %int_4",
6768 std::make_pair("ArgumentPodPushConstant %decl %int_0 %null %int_4",
6770 std::make_pair("ArgumentPodPushConstant %decl %int_0 %int_0 %float_0",
6772 std::make_pair("ArgumentPodPushConstant %decl %int_0 %int_0 %null",
6774 std::make_pair("ArgumentWorkgroup %decl %float_0 %int_0 %int_4",
6776 std::make_pair("ArgumentWorkgroup %decl %null %int_0 %int_4",
6778 std::make_pair("ArgumentWorkgroup %decl %int_0 %float_0 %int_4",
6780 std::make_pair("ArgumentWorkgroup %decl %int_0 %null %int_4", "SpecId"),
6781 std::make_pair("ArgumentWorkgroup %decl %int_0 %int_0 %float_0",
6783 std::make_pair("ArgumentWorkgroup %decl %int_0 %int_0 %null",
6785 std::make_pair("SpecConstantWorkgroupSize %float_0 %int_0 %int_4", "X"),
6786 std::make_pair("SpecConstantWorkgroupSize %null %int_0 %int_4", "X"),
6787 std::make_pair("SpecConstantWorkgroupSize %int_0 %float_0 %int_4", "Y"),
6788 std::make_pair("SpecConstantWorkgroupSize %int_0 %null %int_4", "Y"),
6789 std::make_pair("SpecConstantWorkgroupSize %int_0 %int_0 %float_0", "Z"),
6790 std::make_pair("SpecConstantWorkgroupSize %int_0 %int_0 %null", "Z"),
6791 std::make_pair("SpecConstantGlobalOffset %float_0 %int_0 %int_4", "X"),
6792 std::make_pair("SpecConstantGlobalOffset %null %int_0 %int_4", "X"),
6793 std::make_pair("SpecConstantGlobalOffset %int_0 %float_0 %int_4", "Y"),
6794 std::make_pair("SpecConstantGlobalOffset %int_0 %null %int_4", "Y"),
6795 std::make_pair("SpecConstantGlobalOffset %int_0 %int_0 %float_0", "Z"),
6796 std::make_pair("SpecConstantGlobalOffset %int_0 %int_0 %null", "Z"),
6797 std::make_pair("SpecConstantWorkDim %float_0", "Dim"),
6798 std::make_pair("SpecConstantWorkDim %null", "Dim"),
6799 std::make_pair("PushConstantGlobalOffset %float_0 %int_0", "Offset"),
6800 std::make_pair("PushConstantGlobalOffset %null %int_0", "Offset"),
6801 std::make_pair("PushConstantGlobalOffset %int_0 %float_0", "Size"),
6802 std::make_pair("PushConstantGlobalOffset %int_0 %null", "Size"),
6803 std::make_pair("PushConstantEnqueuedLocalSize %float_0 %int_0",
6805 std::make_pair("PushConstantEnqueuedLocalSize %null %int_0", "Offset"),
6806 std::make_pair("PushConstantEnqueuedLocalSize %int_0 %float_0", "Size"),
6807 std::make_pair("PushConstantEnqueuedLocalSize %int_0 %null", "Size"),
6808 std::make_pair("PushConstantGlobalSize %float_0 %int_0", "Offset"),
6809 std::make_pair("PushConstantGlobalSize %null %int_0", "Offset"),
6810 std::make_pair("PushConstantGlobalSize %int_0 %float_0", "Size"),
6811 std::make_pair("PushConstantGlobalSize %int_0 %null", "Size"),
6812 std::make_pair("PushConstantRegionOffset %float_0 %int_0", "Offset"),
6813 std::make_pair("PushConstantRegionOffset %null %int_0", "Offset"),
6814 std::make_pair("PushConstantRegionOffset %int_0 %float_0", "Size"),
6815 std::make_pair("PushConstantRegionOffset %int_0 %null", "Size"),
6816 std::make_pair("PushConstantNumWorkgroups %float_0 %int_0", "Offset"),
6817 std::make_pair("PushConstantNumWorkgroups %null %int_0", "Offset"),
6818 std::make_pair("PushConstantNumWorkgroups %int_0 %float_0", "Size"),
6819 std::make_pair("PushConstantNumWorkgroups %int_0 %null", "Size"),
6820 std::make_pair("PushConstantRegionGroupOffset %float_0 %int_0",
6822 std::make_pair("PushConstantRegionGroupOffset %null %int_0", "Offset"),
6823 std::make_pair("PushConstantRegionGroupOffset %int_0 %float_0", "Size"),
6824 std::make_pair("PushConstantRegionGroupOffset %int_0 %null", "Size"),
6825 std::make_pair("ConstantDataStorageBuffer %float_0 %int_0 %data",
6827 std::make_pair("ConstantDataStorageBuffer %null %int_0 %data",
6829 std::make_pair("ConstantDataStorageBuffer %int_0 %float_0 %data",
6831 std::make_pair("ConstantDataStorageBuffer %int_0 %null %data",
6833 std::make_pair("ConstantDataUniform %float_0 %int_0 %data",
6835 std::make_pair("ConstantDataUniform %null %int_0 %data",
6837 std::make_pair("ConstantDataUniform %int_0 %float_0 %data", "Binding"),
6838 std::make_pair("ConstantDataUniform %int_0 %null %data", "Binding"),
6839 std::make_pair("LiteralSampler %float_0 %int_0 %int_4",
6841 std::make_pair("LiteralSampler %null %int_0 %int_4", "DescriptorSet"),
6842 std::make_pair("LiteralSampler %int_0 %float_0 %int_4", "Binding"),
6843 std::make_pair("LiteralSampler %int_0 %null %int_4", "Binding"),
6844 std::make_pair("LiteralSampler %int_0 %int_0 %float_0", "Mask"),
6845 std::make_pair("LiteralSampler %int_0 %int_0 %null", "Mask"),
6846 std::make_pair(
6848 std::make_pair(
6850 std::make_pair(
6852 std::make_pair(
6854 std::make_pair(
6856 std::make_pair(
6858 std::make_pair("SpecConstantSubgroupMaxSize %float_0", "Size"),
6859 std::make_pair("SpecConstantSubgroupMaxSize %null", "Size"),
6860 std::make_pair(
6863 std::make_pair("ArgumentPointerPushConstant %decl %null %int_0 %int_0",
6865 std::make_pair(
6868 std::make_pair("ArgumentPointerPushConstant %decl %int_0 %null %int_0",
6870 std::make_pair(
6872 std::make_pair("ArgumentPointerPushConstant %decl %int_0 %int_0 %null",
6874 std::make_pair(
6877 std::make_pair(
6880 std::make_pair(
6883 std::make_pair(
6886 std::make_pair(
6889 std::make_pair(
6892 std::make_pair(
6895 std::make_pair(
6898 std::make_pair(
6901 std::make_pair(
6904 std::make_pair(
6907 std::make_pair("ProgramScopeVariablesStorageBuffer %null %int_0 %data",
6909 std::make_pair(
6912 std::make_pair("ProgramScopeVariablesStorageBuffer %int_0 %null %data",
6914 std::make_pair(
6917 std::make_pair(
6920 std::make_pair(
6923 std::make_pair(
6926 std::make_pair(
6929 std::make_pair(
6932 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl "
6935 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %null "
6938 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %int_0 "
6941 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %int_0 "
6944 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %int_0 "
6947 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %int_0 "
6950 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6953 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6956 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6959 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6962 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6965 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
6968 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %float_0 "
6971 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %null "
6974 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6977 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6980 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6983 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6986 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6989 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6992 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6995 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
6998 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %float_0 "
7001 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %null "
7004 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7007 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7010 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7013 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7016 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7019 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7022 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7025 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7028 std::make_pair(
7031 std::make_pair("ArgumentStorageTexelBuffer %decl %null %int_0 %int_0",
7033 std::make_pair(
7036 std::make_pair("ArgumentStorageTexelBuffer %decl %int_0 %null %int_0",
7038 std::make_pair(
7041 std::make_pair("ArgumentStorageTexelBuffer %decl %int_0 %int_0 %null",
7043 std::make_pair(
7046 std::make_pair("ArgumentUniformTexelBuffer %decl %null %int_0 %int_0",
7048 std::make_pair(
7051 std::make_pair("ArgumentUniformTexelBuffer %decl %int_0 %null %int_0",
7053 std::make_pair(
7056 std::make_pair("ArgumentUniformTexelBuffer %decl %int_0 %int_0 %null",
7058 std::make_pair("ConstantDataPointerPushConstant %float_0 %int_4 %data",
7060 std::make_pair("ConstantDataPointerPushConstant %null %int_4 %data",
7062 std::make_pair("ConstantDataPointerPushConstant %int_0 %float_0 %data",
7064 std::make_pair("ConstantDataPointerPushConstant %int_0 %null %data",
7066 std::make_pair(
7069 std::make_pair(
7072 std::make_pair(
7075 std::make_pair(
7078 std::make_pair("PrintfInfo %float_0 %data %int_0 %int_0 %int_0",
7080 std::make_pair("PrintfInfo %null %data %int_0 %int_0 %int_0",
7082 std::make_pair("PrintfInfo %int_0 %data %float_0 %int_0 %int_0",
7084 std::make_pair("PrintfInfo %int_0 %data %null %int_0 %int_0",
7086 std::make_pair("PrintfInfo %int_0 %data %int_0 %float_0 %int_0",
7088 std::make_pair("PrintfInfo %int_0 %data %int_0 %null %int_0",
7090 std::make_pair("PrintfInfo %int_0 %data %int_0 %int_0 %null",
7092 std::make_pair("PrintfInfo %int_0 %data %int_0 %int_0 %float_0",
7094 std::make_pair("PrintfInfo %int_0 %data %int_0 %float_0",
7096 std::make_pair("PrintfInfo %int_0 %data %int_0 %null", "ArgumentSizes"),
7097 std::make_pair("PrintfBufferStorageBuffer %float_0 %int_0 %int_4",
7099 std::make_pair("PrintfBufferStorageBuffer %null %int_0 %int_4",
7101 std::make_pair("PrintfBufferStorageBuffer %int_0 %float_0 %int_4",
7103 std::make_pair("PrintfBufferStorageBuffer %int_0 %null %int_4",
7105 std::make_pair("PrintfBufferStorageBuffer %int_0 %int_0 %float_0",
7107 std::make_pair("PrintfBufferStorageBuffer %int_0 %int_0 %null", "Size"),
7108 std::make_pair("PrintfBufferPointerPushConstant %float_0 %int_0 %int_4",
7110 std::make_pair("PrintfBufferPointerPushConstant %null %int_0 %int_4",
7112 std::make_pair("PrintfBufferPointerPushConstant %int_0 %float_0 %int_4",
7114 std::make_pair("PrintfBufferPointerPushConstant %int_0 %null %int_4",
7116 std::make_pair("PrintfBufferPointerPushConstant %int_0 %int_0 %float_0",
7118 std::make_pair("PrintfBufferPointerPushConstant %int_0 %int_0 %null",
7122 const std::string ext_inst = std::get<0>(GetParam());
7123 const std::string name = std::get<1>(GetParam());
7124 const std::string text = R"(
7158 spvtest::ValidateBase<std::pair<std::string, std::string>>;
7162 ::testing::ValuesIn(std::vector<std::pair<std::string, std::string>>{
7163 std::make_pair("ConstantDataStorageBuffer %int_0 %int_0 %int_0",
7165 std::make_pair("ConstantDataUniform %int_0 %int_0 %int_0", "Data"),
7166 std::make_pair(
7168 std::make_pair("ConstantDataPointerPushConstant %int_0 %int_0 %int_0",
7170 std::make_pair(
7173 std::make_pair("PrintfInfo %int_0 %int_0", "FormatString")}));
7176 const std::string ext_inst = std::get<0>(GetParam());
7177 const std::string name = std::get<1>(GetParam());
7178 const std::string text = R"(
7209 using VersionCheck = spvtest::ValidateBase<std::pair<std::string, uint32_t>>;
7213 ::testing::ValuesIn(std::vector<std::pair<std::string, uint32_t>>{
7214 std::make_pair("ArgumentStorageBuffer %decl %int_0 %int_0 %int_0", 1),
7215 std::make_pair("ArgumentUniform %decl %int_0 %int_0 %int_0", 1),
7216 std::make_pair(
7219 std::make_pair(
7221 std::make_pair("ArgumentPodPushConstant %decl %int_0 %int_0 %int_0", 1),
7222 std::make_pair("ArgumentSampledImage %decl %int_0 %int_0 %int_0", 1),
7223 std::make_pair("ArgumentStorageImage %decl %int_0 %int_0 %int_0", 1),
7224 std::make_pair("ArgumentSampler %decl %int_0 %int_0 %int_0", 1),
7225 std::make_pair("ArgumentWorkgroup %decl %int_0 %int_0 %int_0", 1),
7226 std::make_pair("SpecConstantWorkgroupSize %int_0 %int_0 %int_0", 1),
7227 std::make_pair("SpecConstantGlobalOffset %int_0 %int_0 %int_0", 1),
7228 std::make_pair("SpecConstantWorkDim %int_0", 1),
7229 std::make_pair("PushConstantGlobalOffset %int_0 %int_0", 1),
7230 std::make_pair("PushConstantEnqueuedLocalSize %int_0 %int_0", 1),
7231 std::make_pair("PushConstantGlobalSize %int_0 %int_0", 1),
7232 std::make_pair("PushConstantRegionOffset %int_0 %int_0", 1),
7233 std::make_pair("PushConstantNumWorkgroups %int_0 %int_0", 1),
7234 std::make_pair("PushConstantRegionGroupOffset %int_0 %int_0", 1),
7235 std::make_pair("ConstantDataStorageBuffer %int_0 %int_0 %data", 1),
7236 std::make_pair("ConstantDataUniform %int_0 %int_0 %data", 1),
7237 std::make_pair("LiteralSampler %int_0 %int_0 %int_0", 1),
7238 std::make_pair(
7240 std::make_pair("SpecConstantSubgroupMaxSize %int_0", 2),
7241 std::make_pair("ArgumentPointerPushConstant %decl %int_0 %int_0 %int_0",
7243 std::make_pair(
7246 std::make_pair("ProgramScopeVariablesStorageBuffer %int_0 %int_0 %data",
7248 std::make_pair(
7250 std::make_pair("ImageArgumentInfoChannelOrderPushConstant %decl %int_0 "
7253 std::make_pair("ImageArgumentInfoChannelDataTypePushConstant %decl "
7256 std::make_pair("ImageArgumentInfoChannelOrderUniform %decl %int_0 "
7259 std::make_pair("ImageArgumentInfoChannelDataTypeUniform %decl %int_0 "
7262 std::make_pair("ArgumentStorageTexelBuffer %decl %int_0 %int_0 %int_0",
7264 std::make_pair("ArgumentUniformTexelBuffer %decl %int_0 %int_0 %int_0",
7266 std::make_pair("ConstantDataPointerPushConstant %int_0 %int_0 %data",
7268 std::make_pair(
7270 std::make_pair("PrintfInfo %int_0 %data", 5),
7271 std::make_pair("PrintfBufferStorageBuffer %int_0 %int_0 %int_0", 5),
7272 std::make_pair("PrintfBufferPointerPushConstant %int_0 %int_0 %int_0",
7276 const std::string ext_inst = std::get<0>(GetParam());
7277 const uint32_t version = std::get<1>(GetParam());
7278 const std::string text = R"(
7310 HasSubstr("requires version " + std::to_string(version) +
7316 const std::string ext_inst = std::get<0>(GetParam());
7317 const uint32_t version = std::get<1>(GetParam());
7318 const std::string text = R"(
7350 HasSubstr("requires version " + std::to_string(version) +
7356 const std::string ext_inst = std::get<0>(GetParam());
7357 const uint32_t version = std::get<1>(GetParam());
7358 const std::string text = R"(
7390 HasSubstr("requires version " + std::to_string(version) +
7396 const std::string ext_inst = std::get<0>(GetParam());
7397 const uint32_t version = std::get<1>(GetParam());
7398 const std::string text = R"(
7430 HasSubstr("requires version " + std::to_string(version) +
7436 const std::string ext_inst = std::get<0>(GetParam());
7437 const uint32_t version = std::get<1>(GetParam());
7438 const std::string text = R"(
7470 HasSubstr("requires version " + std::to_string(version) +