[AVX512] Bring back vector-shuffle lowering support through broadcasts
[oota-llvm.git] / test / CodeGen / X86 / atomic-ops-ancient-64.ll
1 ; RUN: llc -mtriple=i386-linux-gnu %s -o - | FileCheck %s
2 ; XFAIL: *
3
4 define i64 @test_add(i64* %addr, i64 %inc) {
5 ; CHECK-LABEL: test_add:
6 ; CHECK: calll __sync_fetch_and_add_8
7   %old = atomicrmw add i64* %addr, i64 %inc seq_cst
8   ret i64 %old
9 }
10
11 define i64 @test_sub(i64* %addr, i64 %inc) {
12 ; CHECK-LABEL: test_sub:
13 ; CHECK: calll __sync_fetch_and_sub_8
14   %old = atomicrmw sub i64* %addr, i64 %inc seq_cst
15   ret i64 %old
16 }
17
18 define i64 @test_and(i64* %andr, i64 %inc) {
19 ; CHECK-LABEL: test_and:
20 ; CHECK: calll __sync_fetch_and_and_8
21   %old = atomicrmw and i64* %andr, i64 %inc seq_cst
22   ret i64 %old
23 }
24
25 define i64 @test_or(i64* %orr, i64 %inc) {
26 ; CHECK-LABEL: test_or:
27 ; CHECK: calll __sync_fetch_and_or_8
28   %old = atomicrmw or i64* %orr, i64 %inc seq_cst
29   ret i64 %old
30 }
31
32 define i64 @test_xor(i64* %xorr, i64 %inc) {
33 ; CHECK-LABEL: test_xor:
34 ; CHECK: calll __sync_fetch_and_xor_8
35   %old = atomicrmw xor i64* %xorr, i64 %inc seq_cst
36   ret i64 %old
37 }
38
39 define i64 @test_nand(i64* %nandr, i64 %inc) {
40 ; CHECK-LABEL: test_nand:
41 ; CHECK: calll __sync_fetch_and_nand_8
42   %old = atomicrmw nand i64* %nandr, i64 %inc seq_cst
43   ret i64 %old
44 }