1 ; RUN: opt < %s -cost-model -analyze -mtriple=systemz-unknown -mcpu=z13 | FileCheck %s 2 3 define void @and() { 4 %res0 = and i8 undef, undef 5 %res1 = and i16 undef, undef 6 %res2 = and i32 undef, undef 7 %res3 = and i64 undef, undef 8 %res4 = and <2 x i8> undef, undef 9 %res5 = and <2 x i16> undef, undef 10 %res6 = and <2 x i32> undef, undef 11 %res7 = and <2 x i64> undef, undef 12 %res8 = and <4 x i8> undef, undef 13 %res9 = and <4 x i16> undef, undef 14 %res10 = and <4 x i32> undef, undef 15 %res11 = and <4 x i64> undef, undef 16 %res12 = and <8 x i8> undef, undef 17 %res13 = and <8 x i16> undef, undef 18 %res14 = and <8 x i32> undef, undef 19 %res15 = and <8 x i64> undef, undef 20 %res16 = and <16 x i8> undef, undef 21 %res17 = and <16 x i16> undef, undef 22 %res18 = and <16 x i32> undef, undef 23 %res19 = and <16 x i64> undef, undef 24 25 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = and i8 undef, undef 26 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = and i16 undef, undef 27 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = and i32 undef, undef 28 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = and i64 undef, undef 29 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = and <2 x i8> undef, undef 30 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = and <2 x i16> undef, undef 31 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = and <2 x i32> undef, undef 32 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = and <2 x i64> undef, undef 33 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = and <4 x i8> undef, undef 34 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = and <4 x i16> undef, undef 35 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = and <4 x i32> undef, undef 36 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = and <4 x i64> undef, undef 37 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = and <8 x i8> undef, undef 38 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = and <8 x i16> undef, undef 39 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = and <8 x i32> undef, undef 40 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = and <8 x i64> undef, undef 41 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = and <16 x i8> undef, undef 42 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = and <16 x i16> undef, undef 43 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = and <16 x i32> undef, undef 44 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = and <16 x i64> undef, undef 45 46 ret void; 47 } 48 49 define void @ashr() { 50 %res0 = ashr i8 undef, undef 51 %res1 = ashr i16 undef, undef 52 %res2 = ashr i32 undef, undef 53 %res3 = ashr i64 undef, undef 54 %res4 = ashr <2 x i8> undef, undef 55 %res5 = ashr <2 x i16> undef, undef 56 %res6 = ashr <2 x i32> undef, undef 57 %res7 = ashr <2 x i64> undef, undef 58 %res8 = ashr <4 x i8> undef, undef 59 %res9 = ashr <4 x i16> undef, undef 60 %res10 = ashr <4 x i32> undef, undef 61 %res11 = ashr <4 x i64> undef, undef 62 %res12 = ashr <8 x i8> undef, undef 63 %res13 = ashr <8 x i16> undef, undef 64 %res14 = ashr <8 x i32> undef, undef 65 %res15 = ashr <8 x i64> undef, undef 66 %res16 = ashr <16 x i8> undef, undef 67 %res17 = ashr <16 x i16> undef, undef 68 %res18 = ashr <16 x i32> undef, undef 69 %res19 = ashr <16 x i64> undef, undef 70 71 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res0 = ashr i8 undef, undef 72 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res1 = ashr i16 undef, undef 73 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = ashr i32 undef, undef 74 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = ashr i64 undef, undef 75 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = ashr <2 x i8> undef, undef 76 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = ashr <2 x i16> undef, undef 77 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = ashr <2 x i32> undef, undef 78 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = ashr <2 x i64> undef, undef 79 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = ashr <4 x i8> undef, undef 80 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = ashr <4 x i16> undef, undef 81 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = ashr <4 x i32> undef, undef 82 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = ashr <4 x i64> undef, undef 83 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = ashr <8 x i8> undef, undef 84 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = ashr <8 x i16> undef, undef 85 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = ashr <8 x i32> undef, undef 86 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = ashr <8 x i64> undef, undef 87 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = ashr <16 x i8> undef, undef 88 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = ashr <16 x i16> undef, undef 89 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = ashr <16 x i32> undef, undef 90 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = ashr <16 x i64> undef, undef 91 92 ret void; 93 } 94 95 define void @lshr() { 96 %res0 = lshr i8 undef, undef 97 %res1 = lshr i16 undef, undef 98 %res2 = lshr i32 undef, undef 99 %res3 = lshr i64 undef, undef 100 %res4 = lshr <2 x i8> undef, undef 101 %res5 = lshr <2 x i16> undef, undef 102 %res6 = lshr <2 x i32> undef, undef 103 %res7 = lshr <2 x i64> undef, undef 104 %res8 = lshr <4 x i8> undef, undef 105 %res9 = lshr <4 x i16> undef, undef 106 %res10 = lshr <4 x i32> undef, undef 107 %res11 = lshr <4 x i64> undef, undef 108 %res12 = lshr <8 x i8> undef, undef 109 %res13 = lshr <8 x i16> undef, undef 110 %res14 = lshr <8 x i32> undef, undef 111 %res15 = lshr <8 x i64> undef, undef 112 %res16 = lshr <16 x i8> undef, undef 113 %res17 = lshr <16 x i16> undef, undef 114 %res18 = lshr <16 x i32> undef, undef 115 %res19 = lshr <16 x i64> undef, undef 116 117 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res0 = lshr i8 undef, undef 118 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res1 = lshr i16 undef, undef 119 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = lshr i32 undef, undef 120 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = lshr i64 undef, undef 121 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = lshr <2 x i8> undef, undef 122 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = lshr <2 x i16> undef, undef 123 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = lshr <2 x i32> undef, undef 124 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = lshr <2 x i64> undef, undef 125 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = lshr <4 x i8> undef, undef 126 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = lshr <4 x i16> undef, undef 127 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = lshr <4 x i32> undef, undef 128 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = lshr <4 x i64> undef, undef 129 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = lshr <8 x i8> undef, undef 130 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = lshr <8 x i16> undef, undef 131 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = lshr <8 x i32> undef, undef 132 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = lshr <8 x i64> undef, undef 133 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = lshr <16 x i8> undef, undef 134 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = lshr <16 x i16> undef, undef 135 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = lshr <16 x i32> undef, undef 136 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = lshr <16 x i64> undef, undef 137 138 ret void; 139 } 140 141 define void @or() { 142 %res0 = or i8 undef, undef 143 %res1 = or i16 undef, undef 144 %res2 = or i32 undef, undef 145 %res3 = or i64 undef, undef 146 %res4 = or <2 x i8> undef, undef 147 %res5 = or <2 x i16> undef, undef 148 %res6 = or <2 x i32> undef, undef 149 %res7 = or <2 x i64> undef, undef 150 %res8 = or <4 x i8> undef, undef 151 %res9 = or <4 x i16> undef, undef 152 %res10 = or <4 x i32> undef, undef 153 %res11 = or <4 x i64> undef, undef 154 %res12 = or <8 x i8> undef, undef 155 %res13 = or <8 x i16> undef, undef 156 %res14 = or <8 x i32> undef, undef 157 %res15 = or <8 x i64> undef, undef 158 %res16 = or <16 x i8> undef, undef 159 %res17 = or <16 x i16> undef, undef 160 %res18 = or <16 x i32> undef, undef 161 %res19 = or <16 x i64> undef, undef 162 163 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = or i8 undef, undef 164 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = or i16 undef, undef 165 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = or i32 undef, undef 166 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = or i64 undef, undef 167 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = or <2 x i8> undef, undef 168 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = or <2 x i16> undef, undef 169 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = or <2 x i32> undef, undef 170 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = or <2 x i64> undef, undef 171 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = or <4 x i8> undef, undef 172 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = or <4 x i16> undef, undef 173 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = or <4 x i32> undef, undef 174 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = or <4 x i64> undef, undef 175 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = or <8 x i8> undef, undef 176 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = or <8 x i16> undef, undef 177 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = or <8 x i32> undef, undef 178 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = or <8 x i64> undef, undef 179 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = or <16 x i8> undef, undef 180 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = or <16 x i16> undef, undef 181 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = or <16 x i32> undef, undef 182 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = or <16 x i64> undef, undef 183 184 ret void; 185 } 186 187 define void @shl() { 188 %res0 = shl i8 undef, undef 189 %res1 = shl i16 undef, undef 190 %res2 = shl i32 undef, undef 191 %res3 = shl i64 undef, undef 192 %res4 = shl <2 x i8> undef, undef 193 %res5 = shl <2 x i16> undef, undef 194 %res6 = shl <2 x i32> undef, undef 195 %res7 = shl <2 x i64> undef, undef 196 %res8 = shl <4 x i8> undef, undef 197 %res9 = shl <4 x i16> undef, undef 198 %res10 = shl <4 x i32> undef, undef 199 %res11 = shl <4 x i64> undef, undef 200 %res12 = shl <8 x i8> undef, undef 201 %res13 = shl <8 x i16> undef, undef 202 %res14 = shl <8 x i32> undef, undef 203 %res15 = shl <8 x i64> undef, undef 204 %res16 = shl <16 x i8> undef, undef 205 %res17 = shl <16 x i16> undef, undef 206 %res18 = shl <16 x i32> undef, undef 207 %res19 = shl <16 x i64> undef, undef 208 209 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = shl i8 undef, undef 210 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = shl i16 undef, undef 211 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = shl i32 undef, undef 212 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = shl i64 undef, undef 213 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = shl <2 x i8> undef, undef 214 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = shl <2 x i16> undef, undef 215 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = shl <2 x i32> undef, undef 216 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = shl <2 x i64> undef, undef 217 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = shl <4 x i8> undef, undef 218 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = shl <4 x i16> undef, undef 219 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = shl <4 x i32> undef, undef 220 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = shl <4 x i64> undef, undef 221 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = shl <8 x i8> undef, undef 222 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = shl <8 x i16> undef, undef 223 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = shl <8 x i32> undef, undef 224 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = shl <8 x i64> undef, undef 225 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = shl <16 x i8> undef, undef 226 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = shl <16 x i16> undef, undef 227 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = shl <16 x i32> undef, undef 228 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = shl <16 x i64> undef, undef 229 230 ret void; 231 } 232 233 define void @xor() { 234 %res0 = xor i8 undef, undef 235 %res1 = xor i16 undef, undef 236 %res2 = xor i32 undef, undef 237 %res3 = xor i64 undef, undef 238 %res4 = xor <2 x i8> undef, undef 239 %res5 = xor <2 x i16> undef, undef 240 %res6 = xor <2 x i32> undef, undef 241 %res7 = xor <2 x i64> undef, undef 242 %res8 = xor <4 x i8> undef, undef 243 %res9 = xor <4 x i16> undef, undef 244 %res10 = xor <4 x i32> undef, undef 245 %res11 = xor <4 x i64> undef, undef 246 %res12 = xor <8 x i8> undef, undef 247 %res13 = xor <8 x i16> undef, undef 248 %res14 = xor <8 x i32> undef, undef 249 %res15 = xor <8 x i64> undef, undef 250 %res16 = xor <16 x i8> undef, undef 251 %res17 = xor <16 x i16> undef, undef 252 %res18 = xor <16 x i32> undef, undef 253 %res19 = xor <16 x i64> undef, undef 254 255 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res0 = xor i8 undef, undef 256 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res1 = xor i16 undef, undef 257 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res2 = xor i32 undef, undef 258 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res3 = xor i64 undef, undef 259 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res4 = xor <2 x i8> undef, undef 260 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res5 = xor <2 x i16> undef, undef 261 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res6 = xor <2 x i32> undef, undef 262 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res7 = xor <2 x i64> undef, undef 263 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res8 = xor <4 x i8> undef, undef 264 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res9 = xor <4 x i16> undef, undef 265 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res10 = xor <4 x i32> undef, undef 266 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res11 = xor <4 x i64> undef, undef 267 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res12 = xor <8 x i8> undef, undef 268 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res13 = xor <8 x i16> undef, undef 269 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res14 = xor <8 x i32> undef, undef 270 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res15 = xor <8 x i64> undef, undef 271 ; CHECK: Cost Model: Found an estimated cost of 1 for instruction: %res16 = xor <16 x i8> undef, undef 272 ; CHECK: Cost Model: Found an estimated cost of 2 for instruction: %res17 = xor <16 x i16> undef, undef 273 ; CHECK: Cost Model: Found an estimated cost of 4 for instruction: %res18 = xor <16 x i32> undef, undef 274 ; CHECK: Cost Model: Found an estimated cost of 8 for instruction: %res19 = xor <16 x i64> undef, undef 275 276 ret void; 277 } 278