1 ; RUN: llc -mtriple=x86_64-unknown-unknown -march=x86-64 -mattr=+tbm < %s | FileCheck %s
3 define i32 @test_x86_tbm_bextri_u32(i32 %a) nounwind readnone {
5 ; CHECK-LABEL: test_x86_tbm_bextri_u32:
8 %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %a, i32 2814)
12 declare i32 @llvm.x86.tbm.bextri.u32(i32, i32) nounwind readnone
14 define i32 @test_x86_tbm_bextri_u32_m(i32* nocapture %a) nounwind readonly {
16 ; CHECK-LABEL: test_x86_tbm_bextri_u32_m:
19 %tmp1 = load i32* %a, align 4
20 %0 = tail call i32 @llvm.x86.tbm.bextri.u32(i32 %tmp1, i32 2814)
24 define i64 @test_x86_tbm_bextri_u64(i64 %a) nounwind readnone {
26 ; CHECK-LABEL: test_x86_tbm_bextri_u64:
29 %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %a, i32 2814)
33 declare i64 @llvm.x86.tbm.bextri.u64(i64, i32) nounwind readnone
35 define i64 @test_x86_tbm_bextri_u64_m(i64* nocapture %a) nounwind readonly {
37 ; CHECK-LABEl: test_x86_tbm_bextri_u64_m:
40 %tmp1 = load i64* %a, align 8
41 %0 = tail call i64 @llvm.x86.tbm.bextri.u64(i64 %tmp1, i32 2814)
45 define i32 @test_x86_tbm_blcfill_u32(i32 %a) nounwind readnone {
47 ; CHECK-LABEL: test_x86_tbm_blcfill_u32:
50 %0 = tail call i32 @llvm.x86.tbm.blcfill.u32(i32 %a)
54 declare i32 @llvm.x86.tbm.blcfill.u32(i32) nounwind readnone
56 define i32 @test_x86_tbm_blcfill_u32_m(i32* nocapture %a) nounwind readonly {
58 ; CHECK-LABEL: test_x86_tbm_blcfill_u32_m:
61 %tmp1 = load i32* %a, align 4
62 %0 = tail call i32 @llvm.x86.tbm.blcfill.u32(i32 %tmp1)
66 define i64 @test_x86_tbm_blcfill_u64(i64 %a) nounwind readnone {
68 ; CHECK-LABEL: test_x86_tbm_blcfill_u64:
71 %0 = tail call i64 @llvm.x86.tbm.blcfill.u64(i64 %a)
75 declare i64 @llvm.x86.tbm.blcfill.u64(i64) nounwind readnone
77 define i64 @test_x86_tbm_blcfill_u64_m(i64* nocapture %a) nounwind readonly {
79 ; CHECK-LABEL: test_x86_tbm_blcfill_u64_m:
82 %tmp1 = load i64* %a, align 8
83 %0 = tail call i64 @llvm.x86.tbm.blcfill.u64(i64 %tmp1)
87 define i32 @test_x86_tbm_blci_u32(i32 %a) nounwind readnone {
89 ; CHECK-LABEL: test_x86_tbm_blci_u32:
92 %0 = tail call i32 @llvm.x86.tbm.blci.u32(i32 %a)
96 declare i32 @llvm.x86.tbm.blci.u32(i32) nounwind readnone
98 define i32 @test_x86_tbm_blci_u32_m(i32* nocapture %a) nounwind readonly {
100 ; CHECK-LABEL: test_x86_tbm_blci_u32_m:
103 %tmp1 = load i32* %a, align 4
104 %0 = tail call i32 @llvm.x86.tbm.blci.u32(i32 %tmp1)
108 define i64 @test_x86_tbm_blci_u64(i64 %a) nounwind readnone {
110 ; CHECK-LABEL: test_x86_tbm_blci_u64:
113 %0 = tail call i64 @llvm.x86.tbm.blci.u64(i64 %a)
117 declare i64 @llvm.x86.tbm.blci.u64(i64) nounwind readnone
119 define i64 @test_x86_tbm_blci_u64_m(i64* nocapture %a) nounwind readonly {
121 ; CHECK-LABEl: test_x86_tbm_blci_u64_m:
124 %tmp1 = load i64* %a, align 8
125 %0 = tail call i64 @llvm.x86.tbm.blci.u64(i64 %tmp1)
129 define i32 @test_x86_tbm_blcic_u32(i32 %a) nounwind readnone {
131 ; CHECK-LABEL: test_x86_tbm_blcic_u32:
134 %0 = tail call i32 @llvm.x86.tbm.blcic.u32(i32 %a)
138 declare i32 @llvm.x86.tbm.blcic.u32(i32) nounwind readnone
140 define i32 @test_x86_tbm_blcic_u32_m(i32* nocapture %a) nounwind readonly {
142 ; CHECK-LABEL: test_x86_tbm_blcic_u32_m:
145 %tmp1 = load i32* %a, align 4
146 %0 = tail call i32 @llvm.x86.tbm.blcic.u32(i32 %tmp1)
150 define i64 @test_x86_tbm_blcic_u64(i64 %a) nounwind readnone {
152 ; CHECK-LABEL: test_x86_tbm_blcic_u64:
155 %0 = tail call i64 @llvm.x86.tbm.blcic.u64(i64 %a)
159 declare i64 @llvm.x86.tbm.blcic.u64(i64) nounwind readnone
161 define i64 @test_x86_tbm_blcic_u64_m(i64* nocapture %a) nounwind readonly {
163 ; CHECK-LABEL: test_x86_tbm_blcic_u64_m:
166 %tmp1 = load i64* %a, align 8
167 %0 = tail call i64 @llvm.x86.tbm.blcic.u64(i64 %tmp1)
171 define i32 @test_x86_tbm_blcmsk_u32(i32 %a) nounwind readnone {
173 ; CHECK-LABEL: test_x86_tbm_blcmsk_u32:
176 %0 = tail call i32 @llvm.x86.tbm.blcmsk.u32(i32 %a)
180 declare i32 @llvm.x86.tbm.blcmsk.u32(i32) nounwind readnone
182 define i32 @test_x86_tbm_blcmsk_u32_m(i32* nocapture %a) nounwind readonly {
184 ; CHECK-LABEL: test_x86_tbm_blcmsk_u32_m:
187 %tmp1 = load i32* %a, align 4
188 %0 = tail call i32 @llvm.x86.tbm.blcmsk.u32(i32 %tmp1)
192 define i64 @test_x86_tbm_blcmsk_u64(i64 %a) nounwind readnone {
194 ; CHECK-LABEL: test_x86_tbm_blcmsk_u64:
197 %0 = tail call i64 @llvm.x86.tbm.blcmsk.u64(i64 %a)
201 declare i64 @llvm.x86.tbm.blcmsk.u64(i64) nounwind readnone
203 define i64 @test_x86_tbm_blcmsk_u64_m(i64* nocapture %a) nounwind readonly {
205 ; CHECK-LABEL: test_x86_tbm_blcmsk_u64_m:
208 %tmp1 = load i64* %a, align 8
209 %0 = tail call i64 @llvm.x86.tbm.blcmsk.u64(i64 %tmp1)
213 define i32 @test_x86_tbm_blcs_u32(i32 %a) nounwind readnone {
215 ; CHECK-LABEL: test_x86_tbm_blcs_u32:
218 %0 = tail call i32 @llvm.x86.tbm.blcs.u32(i32 %a)
222 declare i32 @llvm.x86.tbm.blcs.u32(i32) nounwind readnone
224 define i32 @test_x86_tbm_blcs_u32_m(i32* nocapture %a) nounwind readonly {
226 ; CHECK-LABEL: test_x86_tbm_blcs_u32_m:
229 %tmp1 = load i32* %a, align 4
230 %0 = tail call i32 @llvm.x86.tbm.blcs.u32(i32 %tmp1)
234 define i64 @test_x86_tbm_blcs_u64(i64 %a) nounwind readnone {
236 ; CHECK-LABEL: test_x86_tbm_blcs_u64:
239 %0 = tail call i64 @llvm.x86.tbm.blcs.u64(i64 %a)
243 declare i64 @llvm.x86.tbm.blcs.u64(i64) nounwind readnone
245 define i64 @test_x86_tbm_blcs_u64_m(i64* nocapture %a) nounwind readonly {
247 ; CHECK-LABEL: test_x86_tbm_blcs_u64_m:
250 %tmp1 = load i64* %a, align 8
251 %0 = tail call i64 @llvm.x86.tbm.blcs.u64(i64 %tmp1)
255 define i32 @test_x86_tbm_blsfill_u32(i32 %a) nounwind readnone {
257 ; CHECK-LABEL: test_x86_tbm_blsfill_u32:
260 %0 = tail call i32 @llvm.x86.tbm.blsfill.u32(i32 %a)
264 declare i32 @llvm.x86.tbm.blsfill.u32(i32) nounwind readnone
266 define i32 @test_x86_tbm_blsfill_u32_m(i32* nocapture %a) nounwind readonly {
268 ; CHECK-LABEL: test_x86_tbm_blsfill_u32_m:
271 %tmp1 = load i32* %a, align 4
272 %0 = tail call i32 @llvm.x86.tbm.blsfill.u32(i32 %tmp1)
276 define i64 @test_x86_tbm_blsfill_u64(i64 %a) nounwind readnone {
278 ; CHECK-LABEL: test_x86_tbm_blsfill_u64:
281 %0 = tail call i64 @llvm.x86.tbm.blsfill.u64(i64 %a)
285 declare i64 @llvm.x86.tbm.blsfill.u64(i64) nounwind readnone
287 define i64 @test_x86_tbm_blsfill_u64_m(i64* nocapture %a) nounwind readonly {
289 ; CHECK-LABEL: test_x86_tbm_blsfill_u64_m:
292 %tmp1 = load i64* %a, align 8
293 %0 = tail call i64 @llvm.x86.tbm.blsfill.u64(i64 %tmp1)
297 define i32 @test_x86_tbm_blsic_u32(i32 %a) nounwind readnone {
299 ; CHECK-LABEL: test_x86_tbm_blsic_u32:
302 %0 = tail call i32 @llvm.x86.tbm.blsic.u32(i32 %a)
306 declare i32 @llvm.x86.tbm.blsic.u32(i32) nounwind readnone
308 define i32 @test_x86_tbm_blsic_u32_m(i32* nocapture %a) nounwind readonly {
310 ; CHECK-LABEL: test_x86_tbm_blsic_u32_m:
313 %tmp1 = load i32* %a, align 4
314 %0 = tail call i32 @llvm.x86.tbm.blsic.u32(i32 %tmp1)
318 define i64 @test_x86_tbm_blsic_u64(i64 %a) nounwind readnone {
320 ; CHECK-LABEL: test_x86_tbm_blsic_u64:
323 %0 = tail call i64 @llvm.x86.tbm.blsic.u64(i64 %a)
327 declare i64 @llvm.x86.tbm.blsic.u64(i64) nounwind readnone
329 define i64 @test_x86_tbm_blsic_u64_m(i64* nocapture %a) nounwind readonly {
331 ; CHECK-LABEL: test_x86_tbm_blsic_u64_m:
334 %tmp1 = load i64* %a, align 8
335 %0 = tail call i64 @llvm.x86.tbm.blsic.u64(i64 %tmp1)
339 define i32 @test_x86_tbm_t1mskc_u32(i32 %a) nounwind readnone {
341 ; CHECK-LABEL: test_x86_tbm_t1mskc_u32:
344 %0 = tail call i32 @llvm.x86.tbm.t1mskc.u32(i32 %a)
348 declare i32 @llvm.x86.tbm.t1mskc.u32(i32) nounwind readnone
350 define i32 @test_x86_tbm_t1mskc_u32_m(i32* nocapture %a) nounwind readonly {
352 ; CHECK-LABEL: test_x86_tbm_t1mskc_u32_m:
355 %tmp1 = load i32* %a, align 4
356 %0 = tail call i32 @llvm.x86.tbm.t1mskc.u32(i32 %tmp1)
360 define i64 @test_x86_tbm_t1mskc_u64(i64 %a) nounwind readnone {
362 ; CHECK-LABEL: test_x86_tbm_t1mskc_u64:
365 %0 = tail call i64 @llvm.x86.tbm.t1mskc.u64(i64 %a)
369 declare i64 @llvm.x86.tbm.t1mskc.u64(i64) nounwind readnone
371 define i64 @test_x86_tbm_t1mskc_u64_m(i64* nocapture %a) nounwind readonly {
373 ; CHECK-LABEL: test_x86_tbm_t1mskc_u64_m:
376 %tmp1 = load i64* %a, align 8
377 %0 = tail call i64 @llvm.x86.tbm.t1mskc.u64(i64 %tmp1)
381 define i32 @test_x86_tbm_tzmsk_u32(i32 %a) nounwind readnone {
383 ; CHECK-LABEL: test_x86_tbm_tzmsk_u32:
386 %0 = tail call i32 @llvm.x86.tbm.tzmsk.u32(i32 %a)
390 declare i32 @llvm.x86.tbm.tzmsk.u32(i32) nounwind readnone
392 define i32 @test_x86_tbm_tzmsk_u32_m(i32* nocapture %a) nounwind readonly {
394 ; CHECK-LABEL: test_x86_tbm_tzmsk_u32_m:
397 %tmp1 = load i32* %a, align 4
398 %0 = tail call i32 @llvm.x86.tbm.tzmsk.u32(i32 %tmp1)
402 define i64 @test_x86_tbm_tzmsk_u64(i64 %a) nounwind readnone {
404 ; CHECK-LABEL: test_x86_tbm_tzmsk_u64:
407 %0 = tail call i64 @llvm.x86.tbm.tzmsk.u64(i64 %a)
411 declare i64 @llvm.x86.tbm.tzmsk.u64(i64) nounwind readnone
413 define i64 @test_x86_tbm_tzmsk_u64_m(i64* nocapture %a) nounwind readonly {
415 ; CHECK-LABEl: test_x86_tbm_tzmsk_u64_m:
418 %tmp1 = load i64* %a, align 8
419 %0 = tail call i64 @llvm.x86.tbm.tzmsk.u64(i64 %tmp1)