Commit 447ef15
committed
[CIR] Add support for ExtVector Bool Type
Implements support for ext_vector_type with bool elements. Bool vectors
are represented as integers in CIR (e.g., bool4 uses !cir.int<u, 8>),
matching traditional CodeGen's approach.
Key changes:
- CIRGenTypes: Convert ExtVectorBoolType to integer storage (iN where N = max(num_elements, 8))
- CIRGenExprConst: Pack bool elements into integer bits during constant initialization
- CIRGenExprScalar: Handle subscript access by extracting bits from integer
- CIRGenExpr: Skip vector optimizations for ExtVectorBoolType in load/store paths
Tests added for basic initialization, subscript access, and bitwise operations.
ghstack-source-id: 677025c
Pull-Request: #19981 parent 8815253 commit 447ef15
File tree
5 files changed
+364
-36
lines changed- clang
- lib/CIR/CodeGen
- test/CIR/CodeGen
5 files changed
+364
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
634 | 634 | | |
635 | 635 | | |
636 | 636 | | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
637 | 645 | | |
638 | 646 | | |
639 | 647 | | |
| |||
653 | 661 | | |
654 | 662 | | |
655 | 663 | | |
656 | | - | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
657 | 668 | | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
664 | | - | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
665 | 675 | | |
666 | | - | |
667 | | - | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
668 | 679 | | |
669 | 680 | | |
670 | 681 | | |
| |||
868 | 879 | | |
869 | 880 | | |
870 | 881 | | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
871 | 892 | | |
872 | 893 | | |
873 | 894 | | |
| |||
2953 | 2974 | | |
2954 | 2975 | | |
2955 | 2976 | | |
| 2977 | + | |
| 2978 | + | |
| 2979 | + | |
| 2980 | + | |
| 2981 | + | |
| 2982 | + | |
| 2983 | + | |
2956 | 2984 | | |
2957 | 2985 | | |
2958 | 2986 | | |
| |||
2974 | 3002 | | |
2975 | 3003 | | |
2976 | 3004 | | |
2977 | | - | |
| 3005 | + | |
| 3006 | + | |
| 3007 | + | |
| 3008 | + | |
2978 | 3009 | | |
2979 | | - | |
2980 | | - | |
2981 | | - | |
2982 | | - | |
2983 | | - | |
2984 | | - | |
2985 | | - | |
2986 | | - | |
2987 | | - | |
2988 | | - | |
2989 | | - | |
2990 | | - | |
2991 | | - | |
2992 | | - | |
2993 | | - | |
2994 | | - | |
| 3010 | + | |
| 3011 | + | |
| 3012 | + | |
| 3013 | + | |
| 3014 | + | |
| 3015 | + | |
| 3016 | + | |
| 3017 | + | |
| 3018 | + | |
| 3019 | + | |
| 3020 | + | |
| 3021 | + | |
| 3022 | + | |
| 3023 | + | |
| 3024 | + | |
| 3025 | + | |
2995 | 3026 | | |
2996 | 3027 | | |
2997 | 3028 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1134 | 1134 | | |
1135 | 1135 | | |
1136 | 1136 | | |
1137 | | - | |
1138 | | - | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
1139 | 1170 | | |
1140 | 1171 | | |
1141 | | - | |
| 1172 | + | |
1142 | 1173 | | |
1143 | 1174 | | |
1144 | 1175 | | |
| |||
1149 | 1180 | | |
1150 | 1181 | | |
1151 | 1182 | | |
1152 | | - | |
| 1183 | + | |
| 1184 | + | |
1153 | 1185 | | |
1154 | 1186 | | |
1155 | | - | |
| 1187 | + | |
1156 | 1188 | | |
1157 | 1189 | | |
1158 | 1190 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | | - | |
313 | | - | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
314 | 345 | | |
315 | 346 | | |
316 | 347 | | |
| |||
976 | 1007 | | |
977 | 1008 | | |
978 | 1009 | | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
979 | 1019 | | |
980 | 1020 | | |
981 | 1021 | | |
| |||
2076 | 2116 | | |
2077 | 2117 | | |
2078 | 2118 | | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
| 2127 | + | |
2079 | 2128 | | |
2080 | 2129 | | |
2081 | 2130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
670 | 670 | | |
671 | 671 | | |
672 | 672 | | |
673 | | - | |
674 | | - | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
675 | 685 | | |
676 | 686 | | |
677 | 687 | | |
| |||
0 commit comments