Commit 444da4f
[CIR][CIRGen][builtin] handle
Traditional clang implementation:
https://github.com/llvm/clangir/blob/a1ab6bf6cd3b83d0982c16f29e8c98958f69c024/clang/lib/CodeGen/CGBuiltin.cpp#L3618-L3632
The problem here is that `__builtin_clz` allows undefined result, while
`__lzcnt` doesn't. As a result, I have to create a new CIR for
`__lzcnt`. Since the return type of those two builtin differs, I decided
to change return type of current `CIR_BitOp` to allow new `CIR_LzcntOp`
to inherit from it.
I would like to hear your suggestions. C.c. @Lancern__lzcnt (#1382)1 parent a120c21 commit 444da4f
File tree
11 files changed
+360
-380
lines changed- clang
- include/clang/CIR/Dialect/IR
- lib/CIR
- CodeGen
- Lowering
- DirectToLLVM
- ThroughMLIR
- test/CIR
- CodeGen
- IR
- Lowering
- ThroughMLIR
11 files changed
+360
-380
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1559 | 1559 | | |
1560 | 1560 | | |
1561 | 1561 | | |
1562 | | - | |
| 1562 | + | |
1563 | 1563 | | |
1564 | | - | |
| 1564 | + | |
1565 | 1565 | | |
1566 | 1566 | | |
1567 | 1567 | | |
1568 | 1568 | | |
1569 | 1569 | | |
1570 | 1570 | | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
1571 | 1580 | | |
1572 | 1581 | | |
1573 | 1582 | | |
| |||
1599 | 1608 | | |
1600 | 1609 | | |
1601 | 1610 | | |
1602 | | - | |
| 1611 | + | |
1603 | 1612 | | |
1604 | 1613 | | |
1605 | 1614 | | |
| |||
1608 | 1617 | | |
1609 | 1618 | | |
1610 | 1619 | | |
1611 | | - | |
| 1620 | + | |
| 1621 | + | |
1612 | 1622 | | |
1613 | 1623 | | |
1614 | 1624 | | |
1615 | 1625 | | |
1616 | | - | |
1617 | 1626 | | |
1618 | 1627 | | |
1619 | 1628 | | |
1620 | 1629 | | |
1621 | 1630 | | |
1622 | | - | |
| 1631 | + | |
1623 | 1632 | | |
1624 | 1633 | | |
1625 | 1634 | | |
1626 | 1635 | | |
1627 | | - | |
| 1636 | + | |
1628 | 1637 | | |
1629 | 1638 | | |
1630 | 1639 | | |
| |||
1633 | 1642 | | |
1634 | 1643 | | |
1635 | 1644 | | |
1636 | | - | |
| 1645 | + | |
| 1646 | + | |
1637 | 1647 | | |
1638 | 1648 | | |
1639 | 1649 | | |
| |||
1644 | 1654 | | |
1645 | 1655 | | |
1646 | 1656 | | |
1647 | | - | |
| 1657 | + | |
1648 | 1658 | | |
1649 | 1659 | | |
1650 | 1660 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
132 | | - | |
133 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
134 | 135 | | |
135 | 136 | | |
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
144 | 155 | | |
145 | 156 | | |
146 | 157 | | |
| |||
1052 | 1063 | | |
1053 | 1064 | | |
1054 | 1065 | | |
1055 | | - | |
1056 | | - | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
1057 | 1069 | | |
1058 | 1070 | | |
1059 | 1071 | | |
1060 | 1072 | | |
1061 | 1073 | | |
1062 | | - | |
1063 | | - | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
1064 | 1077 | | |
1065 | 1078 | | |
1066 | 1079 | | |
1067 | 1080 | | |
1068 | 1081 | | |
1069 | | - | |
1070 | | - | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
1071 | 1085 | | |
1072 | 1086 | | |
1073 | 1087 | | |
1074 | | - | |
1075 | | - | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
1076 | 1091 | | |
1077 | 1092 | | |
1078 | 1093 | | |
1079 | | - | |
1080 | | - | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
1081 | 1097 | | |
1082 | 1098 | | |
1083 | 1099 | | |
1084 | | - | |
1085 | | - | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
1086 | 1104 | | |
1087 | 1105 | | |
1088 | 1106 | | |
1089 | 1107 | | |
1090 | 1108 | | |
1091 | 1109 | | |
1092 | 1110 | | |
1093 | | - | |
1094 | | - | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
1095 | 1114 | | |
1096 | 1115 | | |
1097 | 1116 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3059 | 3059 | | |
3060 | 3060 | | |
3061 | 3061 | | |
3062 | | - | |
3063 | | - | |
3064 | | - | |
3065 | | - | |
3066 | | - | |
3067 | | - | |
3068 | | - | |
3069 | | - | |
3070 | | - | |
3071 | | - | |
3072 | | - | |
3073 | | - | |
3074 | | - | |
3075 | | - | |
3076 | | - | |
3077 | | - | |
3078 | | - | |
3079 | | - | |
3080 | | - | |
3081 | | - | |
3082 | | - | |
3083 | | - | |
3084 | | - | |
3085 | | - | |
3086 | | - | |
3087 | | - | |
3088 | | - | |
3089 | | - | |
3090 | | - | |
3091 | | - | |
3092 | | - | |
3093 | | - | |
3094 | 3062 | | |
3095 | 3063 | | |
3096 | 3064 | | |
| |||
3111 | 3079 | | |
3112 | 3080 | | |
3113 | 3081 | | |
3114 | | - | |
3115 | | - | |
| 3082 | + | |
| 3083 | + | |
3116 | 3084 | | |
3117 | 3085 | | |
3118 | 3086 | | |
| |||
3147 | 3115 | | |
3148 | 3116 | | |
3149 | 3117 | | |
3150 | | - | |
3151 | | - | |
3152 | | - | |
| 3118 | + | |
| 3119 | + | |
3153 | 3120 | | |
3154 | 3121 | | |
3155 | 3122 | | |
| |||
3158 | 3125 | | |
3159 | 3126 | | |
3160 | 3127 | | |
3161 | | - | |
3162 | | - | |
3163 | | - | |
| 3128 | + | |
| 3129 | + | |
3164 | 3130 | | |
3165 | 3131 | | |
3166 | 3132 | | |
| |||
3169 | 3135 | | |
3170 | 3136 | | |
3171 | 3137 | | |
3172 | | - | |
3173 | | - | |
3174 | | - | |
| 3138 | + | |
| 3139 | + | |
3175 | 3140 | | |
3176 | 3141 | | |
3177 | 3142 | | |
| |||
3196 | 3161 | | |
3197 | 3162 | | |
3198 | 3163 | | |
3199 | | - | |
3200 | | - | |
3201 | | - | |
| 3164 | + | |
| 3165 | + | |
3202 | 3166 | | |
3203 | 3167 | | |
3204 | 3168 | | |
| |||
3212 | 3176 | | |
3213 | 3177 | | |
3214 | 3178 | | |
3215 | | - | |
3216 | | - | |
3217 | | - | |
| 3179 | + | |
| 3180 | + | |
3218 | 3181 | | |
3219 | 3182 | | |
3220 | 3183 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | 76 | | |
83 | 77 | | |
84 | 78 | | |
| |||
0 commit comments