Commit cae0d67
authored
[AArch64][SDAG] Detect non-zeroes in truncating buildvectors in fshl lowering (llvm#123597)
A BUILD_VECTOR can implicity shrink the bits of the operands if the
operand types are not legal. For example a v8i16 constant BUILD_VECTOR
might be represented as v8i16 BUILDVECTOR(i32 1, i32 2, ...).
Unfortunately this means that the constants are not accepted by
matchUnaryPredicateImpl, preventing in this case funnel shifts detecting
that all the operands are non-zero. Add a flag to help it match.1 parent 2dc17fd commit cae0d67
File tree
6 files changed
+27
-39
lines changed- llvm
- include/llvm/CodeGen
- lib/CodeGen/SelectionDAG
- test/CodeGen/AArch64
6 files changed
+27
-39
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3261 | 3261 | | |
3262 | 3262 | | |
3263 | 3263 | | |
3264 | | - | |
| 3264 | + | |
| 3265 | + | |
3265 | 3266 | | |
3266 | 3267 | | |
3267 | 3268 | | |
3268 | 3269 | | |
3269 | | - | |
3270 | | - | |
| 3270 | + | |
| 3271 | + | |
| 3272 | + | |
| 3273 | + | |
3271 | 3274 | | |
3272 | 3275 | | |
3273 | 3276 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
366 | | - | |
| 366 | + | |
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
| |||
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
385 | | - | |
| 385 | + | |
| 386 | + | |
386 | 387 | | |
387 | 388 | | |
388 | 389 | | |
389 | 390 | | |
390 | 391 | | |
391 | 392 | | |
392 | | - | |
| 393 | + | |
393 | 394 | | |
394 | | - | |
| 395 | + | |
395 | 396 | | |
396 | 397 | | |
397 | 398 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7971 | 7971 | | |
7972 | 7972 | | |
7973 | 7973 | | |
7974 | | - | |
| 7974 | + | |
7975 | 7975 | | |
7976 | 7976 | | |
7977 | 7977 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3909 | 3909 | | |
3910 | 3910 | | |
3911 | 3911 | | |
3912 | | - | |
3913 | 3912 | | |
3914 | | - | |
| 3913 | + | |
3915 | 3914 | | |
3916 | 3915 | | |
3917 | 3916 | | |
| |||
3927 | 3926 | | |
3928 | 3927 | | |
3929 | 3928 | | |
3930 | | - | |
3931 | | - | |
| 3929 | + | |
3932 | 3930 | | |
3933 | 3931 | | |
3934 | 3932 | | |
| |||
3945 | 3943 | | |
3946 | 3944 | | |
3947 | 3945 | | |
3948 | | - | |
3949 | 3946 | | |
3950 | | - | |
| 3947 | + | |
3951 | 3948 | | |
3952 | 3949 | | |
3953 | 3950 | | |
| |||
3963 | 3960 | | |
3964 | 3961 | | |
3965 | 3962 | | |
3966 | | - | |
3967 | | - | |
| 3963 | + | |
3968 | 3964 | | |
3969 | 3965 | | |
3970 | 3966 | | |
| |||
3981 | 3977 | | |
3982 | 3978 | | |
3983 | 3979 | | |
3984 | | - | |
3985 | 3980 | | |
3986 | | - | |
| 3981 | + | |
3987 | 3982 | | |
3988 | 3983 | | |
3989 | 3984 | | |
| |||
3999 | 3994 | | |
4000 | 3995 | | |
4001 | 3996 | | |
4002 | | - | |
4003 | | - | |
| 3997 | + | |
4004 | 3998 | | |
4005 | 3999 | | |
4006 | 4000 | | |
| |||
4018 | 4012 | | |
4019 | 4013 | | |
4020 | 4014 | | |
4021 | | - | |
4022 | 4015 | | |
4023 | 4016 | | |
4024 | 4017 | | |
| |||
4060 | 4053 | | |
4061 | 4054 | | |
4062 | 4055 | | |
4063 | | - | |
4064 | 4056 | | |
4065 | 4057 | | |
4066 | 4058 | | |
| |||
4099 | 4091 | | |
4100 | 4092 | | |
4101 | 4093 | | |
4102 | | - | |
4103 | 4094 | | |
4104 | | - | |
| 4095 | + | |
4105 | 4096 | | |
4106 | 4097 | | |
4107 | 4098 | | |
| |||
4117 | 4108 | | |
4118 | 4109 | | |
4119 | 4110 | | |
4120 | | - | |
4121 | | - | |
| 4111 | + | |
4122 | 4112 | | |
4123 | 4113 | | |
4124 | 4114 | | |
| |||
4135 | 4125 | | |
4136 | 4126 | | |
4137 | 4127 | | |
4138 | | - | |
4139 | | - | |
4140 | | - | |
4141 | 4128 | | |
4142 | | - | |
4143 | | - | |
| 4129 | + | |
| 4130 | + | |
| 4131 | + | |
4144 | 4132 | | |
4145 | 4133 | | |
4146 | 4134 | | |
| |||
4158 | 4146 | | |
4159 | 4147 | | |
4160 | 4148 | | |
4161 | | - | |
4162 | | - | |
4163 | | - | |
4164 | | - | |
| 4149 | + | |
| 4150 | + | |
4165 | 4151 | | |
4166 | 4152 | | |
4167 | 4153 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
148 | | - | |
| 147 | + | |
149 | 148 | | |
150 | 149 | | |
151 | 150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
156 | | - | |
| 155 | + | |
157 | 156 | | |
158 | 157 | | |
159 | 158 | | |
| |||
0 commit comments