Skip to content

Commit b33aeee

Browse files
committed
[X86] Autogenerate atomic tests. NFC
1 parent 40abb28 commit b33aeee

File tree

3 files changed

+37
-20
lines changed

3 files changed

+37
-20
lines changed
+13-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; RUN: llc < %s -mtriple=x86_64-apple-macosx10.7.0 -verify-machineinstrs | FileCheck %s
23
; RUN: llc < %s -mtriple=x86_64-apple-macosx10.7.0 -verify-machineinstrs -O0 | FileCheck %s
34

45
define void @test1(ptr %ptr, i32 %val1) {
5-
; CHECK: test1
6-
; CHECK: xchgl %esi, (%rdi)
6+
; CHECK-LABEL: test1:
7+
; CHECK: ## %bb.0:
8+
; CHECK-NEXT: xchgl %esi, (%rdi)
9+
; CHECK-NEXT: retq
710
store atomic i32 %val1, ptr %ptr seq_cst, align 4
811
ret void
912
}
1013

1114
define void @test2(ptr %ptr, i32 %val1) {
12-
; CHECK: test2
13-
; CHECK: movl %esi, (%rdi)
15+
; CHECK-LABEL: test2:
16+
; CHECK: ## %bb.0:
17+
; CHECK-NEXT: movl %esi, (%rdi)
18+
; CHECK-NEXT: retq
1419
store atomic i32 %val1, ptr %ptr release, align 4
1520
ret void
1621
}
1722

1823
define i32 @test3(ptr %ptr) {
19-
; CHECK: test3
20-
; CHECK: movl (%rdi), %eax
24+
; CHECK-LABEL: test3:
25+
; CHECK: ## %bb.0:
26+
; CHECK-NEXT: movl (%rdi), %eax
27+
; CHECK-NEXT: retq
2128
%val = load atomic i32, ptr %ptr seq_cst, align 4
2229
ret i32 %val
2330
}

llvm/test/CodeGen/X86/atomic-or.ll

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,33 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; RUN: llc < %s -mtriple=x86_64-- -verify-machineinstrs | FileCheck %s
23

34
; rdar://9692967
45

56
define void @t1(ptr %p, i32 %b) nounwind {
7+
; CHECK-LABEL: t1:
8+
; CHECK: # %bb.0: # %entry
9+
; CHECK-NEXT: movq %rdi, -{{[0-9]+}}(%rsp)
10+
; CHECK-NEXT: movl $2147483648, %eax # imm = 0x80000000
11+
; CHECK-NEXT: lock orq %rax, (%rdi)
12+
; CHECK-NEXT: retq
613
entry:
714
%p.addr = alloca ptr, align 8
815
store ptr %p, ptr %p.addr, align 8
916
%tmp = load ptr, ptr %p.addr, align 8
10-
; CHECK-LABEL: t1:
11-
; CHECK: movl $2147483648, %eax
12-
; CHECK: lock orq %r{{.*}}, (%r{{.*}})
1317
%0 = atomicrmw or ptr %tmp, i64 2147483648 seq_cst
1418
ret void
1519
}
1620

1721
define void @t2(ptr %p, i32 %b) nounwind {
22+
; CHECK-LABEL: t2:
23+
; CHECK: # %bb.0: # %entry
24+
; CHECK-NEXT: movq %rdi, -{{[0-9]+}}(%rsp)
25+
; CHECK-NEXT: lock orq $2147483644, (%rdi) # imm = 0x7FFFFFFC
26+
; CHECK-NEXT: retq
1827
entry:
1928
%p.addr = alloca ptr, align 8
2029
store ptr %p, ptr %p.addr, align 8
2130
%tmp = load ptr, ptr %p.addr, align 8
22-
; CHECK-LABEL: t2:
23-
; CHECK: lock orq $2147483644, (%r{{.*}})
2431
%0 = atomicrmw or ptr %tmp, i64 2147483644 seq_cst
2532
ret void
2633
}

llvm/test/CodeGen/X86/atomic-pointer.ll

+12-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
12
; RUN: llc < %s -mtriple=i686-none-linux -verify-machineinstrs | FileCheck %s
23

34
define ptr @test_atomic_ptr_load(ptr %a0) {
4-
; CHECK: test_atomic_ptr_load
5-
; CHECK: movl
6-
; CHECK: movl
7-
; CHECK: ret
5+
; CHECK-LABEL: test_atomic_ptr_load:
6+
; CHECK: # %bb.0: # %entry
7+
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
8+
; CHECK-NEXT: movl (%eax), %eax
9+
; CHECK-NEXT: retl
810
entry:
911
%0 = load atomic ptr, ptr %a0 seq_cst, align 4
1012
ret ptr %0
1113
}
1214

1315
define void @test_atomic_ptr_store(ptr %a0, ptr %a1) {
14-
; CHECK: test_atomic_ptr_store
15-
; CHECK: movl
16-
; CHECK: movl
17-
; CHECK: xchgl
18-
; CHECK: ret
16+
; CHECK-LABEL: test_atomic_ptr_store:
17+
; CHECK: # %bb.0: # %entry
18+
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
19+
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %ecx
20+
; CHECK-NEXT: xchgl %ecx, (%eax)
21+
; CHECK-NEXT: retl
1922
entry:
2023
store atomic ptr %a0, ptr %a1 seq_cst, align 4
2124
ret void

0 commit comments

Comments
 (0)