Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: test/CodeGen/X86/atomic16.ll

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; RUN: llc < %s -O0 -mtriple=x86_64-unknown-unknown -mcpu=corei7 -verify-machine instrs -show-mc-encoding | FileCheck %s --check-prefix X64 1 ; RUN: llc < %s -O0 -mtriple=x86_64-unknown-unknown -mcpu=corei7 -verify-machine instrs -show-mc-encoding | FileCheck %s --check-prefix X64
2 ; RUN: llc < %s -O0 -mtriple=i386-unknown-unknown -mcpu=corei7 -verify-machinein strs | FileCheck %s --check-prefix X32 2 ; RUN: llc < %s -O0 -mtriple=i386-unknown-unknown -mcpu=corei7 -verify-machinein strs | FileCheck %s --check-prefix X32
3 3
4 @sc16 = external global i16 4 @sc16 = external global i16
5 5
6 define void @atomic_fetch_add16() nounwind { 6 define void @atomic_fetch_add16() nounwind {
7 ; X64-LABEL: atomic_fetch_add16 7 ; X64-LABEL: atomic_fetch_add16
8 ; X32-LABEL: atomic_fetch_add16 8 ; X32-LABEL: atomic_fetch_add16
9 entry: 9 entry:
10 ; 32-bit 10 ; 32-bit
11 %t1 = atomicrmw add i16* @sc16, i16 1 acquire 11 %t1 = atomicrmw add i16* @sc16, i16 1 acquire
12 ; X64: lock 12 ; X64: lock
13 ; X64: incw 13 ; X64: incw
14 ; X32: lock 14 ; X32: lock
15 ; X32: incw 15 ; X32: incw
16 %t2 = atomicrmw add i16* @sc16, i16 3 acquire 16 %t2 = atomicrmw add i16* @sc16, i16 3 acquire
17 ; X64: lock 17 ; X64: lock
18 ; X64: addw $3, {{.*}} # encoding: [0xf0,0x66 18 ; X64: addw $3, {{.*}} # encoding: [0x66,0xf0
19 ; X32: lock 19 ; X32: lock
20 ; X32: addw $3 20 ; X32: addw $3
21 %t3 = atomicrmw add i16* @sc16, i16 5 acquire 21 %t3 = atomicrmw add i16* @sc16, i16 5 acquire
22 ; X64: lock 22 ; X64: lock
23 ; X64: xaddw {{.*}} # encoding: [0xf0,0x66 23 ; X64: xaddw {{.*}} # encoding: [0x66,0xf0
24 ; X32: lock 24 ; X32: lock
25 ; X32: xaddw 25 ; X32: xaddw
26 %t4 = atomicrmw add i16* @sc16, i16 %t3 acquire 26 %t4 = atomicrmw add i16* @sc16, i16 %t3 acquire
27 ; X64: lock 27 ; X64: lock
28 ; X64: addw {{.*}} # encoding: [0xf0,0x66 28 ; X64: addw {{.*}} # encoding: [0x66,0xf0
29 ; X32: lock 29 ; X32: lock
30 ; X32: addw 30 ; X32: addw
31 ret void 31 ret void
32 ; X64: ret 32 ; X64: ret
33 ; X32: ret 33 ; X32: ret
34 } 34 }
35 35
36 define void @atomic_fetch_sub16() nounwind { 36 define void @atomic_fetch_sub16() nounwind {
37 ; X64-LABEL: atomic_fetch_sub16 37 ; X64-LABEL: atomic_fetch_sub16
38 ; X32-LABEL: atomic_fetch_sub16 38 ; X32-LABEL: atomic_fetch_sub16
39 %t1 = atomicrmw sub i16* @sc16, i16 1 acquire 39 %t1 = atomicrmw sub i16* @sc16, i16 1 acquire
40 ; X64: lock 40 ; X64: lock
41 ; X64: decw 41 ; X64: decw
42 ; X32: lock 42 ; X32: lock
43 ; X32: decw 43 ; X32: decw
44 %t2 = atomicrmw sub i16* @sc16, i16 3 acquire 44 %t2 = atomicrmw sub i16* @sc16, i16 3 acquire
45 ; X64: lock 45 ; X64: lock
46 ; X64: subw $3, {{.*}} # encoding: [0xf0,0x66 46 ; X64: subw $3, {{.*}} # encoding: [0x66,0xf0
47 ; X32: lock 47 ; X32: lock
48 ; X32: subw $3 48 ; X32: subw $3
49 %t3 = atomicrmw sub i16* @sc16, i16 5 acquire 49 %t3 = atomicrmw sub i16* @sc16, i16 5 acquire
50 ; X64: lock 50 ; X64: lock
51 ; X64: xaddw {{.*}} # encoding: [0xf0,0x66 51 ; X64: xaddw {{.*}} # encoding: [0x66,0xf0
52 ; X32: lock 52 ; X32: lock
53 ; X32: xaddw 53 ; X32: xaddw
54 %t4 = atomicrmw sub i16* @sc16, i16 %t3 acquire 54 %t4 = atomicrmw sub i16* @sc16, i16 %t3 acquire
55 ; X64: lock 55 ; X64: lock
56 ; X64: subw {{.*}} # encoding: [0xf0,0x66 56 ; X64: subw {{.*}} # encoding: [0x66,0xf0
57 ; X32: lock 57 ; X32: lock
58 ; X32: subw 58 ; X32: subw
59 ret void 59 ret void
60 ; X64: ret 60 ; X64: ret
61 ; X32: ret 61 ; X32: ret
62 } 62 }
63 63
64 define void @atomic_fetch_and16() nounwind { 64 define void @atomic_fetch_and16() nounwind {
65 ; X64-LABEL: atomic_fetch_and16 65 ; X64-LABEL: atomic_fetch_and16
66 ; X32-LABEL: atomic_fetch_and16 66 ; X32-LABEL: atomic_fetch_and16
67 %t1 = atomicrmw and i16* @sc16, i16 3 acquire 67 %t1 = atomicrmw and i16* @sc16, i16 3 acquire
68 ; X64: lock 68 ; X64: lock
69 ; X64: andw $3, {{.*}} # encoding: [0xf0,0x66 69 ; X64: andw $3, {{.*}} # encoding: [0x66,0xf0
70 ; X32: lock 70 ; X32: lock
71 ; X32: andw $3 71 ; X32: andw $3
72 %t2 = atomicrmw and i16* @sc16, i16 5 acquire 72 %t2 = atomicrmw and i16* @sc16, i16 5 acquire
73 ; X64: andl 73 ; X64: andl
74 ; X64: lock 74 ; X64: lock
75 ; X64: cmpxchgw 75 ; X64: cmpxchgw
76 ; X32: andl 76 ; X32: andl
77 ; X32: lock 77 ; X32: lock
78 ; X32: cmpxchgw 78 ; X32: cmpxchgw
79 %t3 = atomicrmw and i16* @sc16, i16 %t2 acquire 79 %t3 = atomicrmw and i16* @sc16, i16 %t2 acquire
80 ; X64: lock 80 ; X64: lock
81 ; X64: andw {{.*}} # encoding: [0xf0,0x66 81 ; X64: andw {{.*}} # encoding: [0x66,0xf0
82 ; X32: lock 82 ; X32: lock
83 ; X32: andw 83 ; X32: andw
84 ret void 84 ret void
85 ; X64: ret 85 ; X64: ret
86 ; X32: ret 86 ; X32: ret
87 } 87 }
88 88
89 define void @atomic_fetch_or16() nounwind { 89 define void @atomic_fetch_or16() nounwind {
90 ; X64-LABEL: atomic_fetch_or16 90 ; X64-LABEL: atomic_fetch_or16
91 ; X32-LABEL: atomic_fetch_or16 91 ; X32-LABEL: atomic_fetch_or16
92 %t1 = atomicrmw or i16* @sc16, i16 3 acquire 92 %t1 = atomicrmw or i16* @sc16, i16 3 acquire
93 ; X64: lock 93 ; X64: lock
94 ; X64: orw $3, {{.*}} # encoding: [0xf0,0x66 94 ; X64: orw $3, {{.*}} # encoding: [0x66,0xf0
95 ; X32: lock 95 ; X32: lock
96 ; X32: orw $3 96 ; X32: orw $3
97 %t2 = atomicrmw or i16* @sc16, i16 5 acquire 97 %t2 = atomicrmw or i16* @sc16, i16 5 acquire
98 ; X64: orl 98 ; X64: orl
99 ; X64: lock 99 ; X64: lock
100 ; X64: cmpxchgw 100 ; X64: cmpxchgw
101 ; X32: orl 101 ; X32: orl
102 ; X32: lock 102 ; X32: lock
103 ; X32: cmpxchgw 103 ; X32: cmpxchgw
104 %t3 = atomicrmw or i16* @sc16, i16 %t2 acquire 104 %t3 = atomicrmw or i16* @sc16, i16 %t2 acquire
105 ; X64: lock 105 ; X64: lock
106 ; X64: orw {{.*}} # encoding: [0xf0,0x66 106 ; X64: orw {{.*}} # encoding: [0x66,0xf0
107 ; X32: lock 107 ; X32: lock
108 ; X32: orw 108 ; X32: orw
109 ret void 109 ret void
110 ; X64: ret 110 ; X64: ret
111 ; X32: ret 111 ; X32: ret
112 } 112 }
113 113
114 define void @atomic_fetch_xor16() nounwind { 114 define void @atomic_fetch_xor16() nounwind {
115 ; X64-LABEL: atomic_fetch_xor16 115 ; X64-LABEL: atomic_fetch_xor16
116 ; X32-LABEL: atomic_fetch_xor16 116 ; X32-LABEL: atomic_fetch_xor16
117 %t1 = atomicrmw xor i16* @sc16, i16 3 acquire 117 %t1 = atomicrmw xor i16* @sc16, i16 3 acquire
118 ; X64: lock 118 ; X64: lock
119 ; X64: xorw $3, {{.*}} # encoding: [0xf0,0x66 119 ; X64: xorw $3, {{.*}} # encoding: [0x66,0xf0
120 ; X32: lock 120 ; X32: lock
121 ; X32: xorw $3 121 ; X32: xorw $3
122 %t2 = atomicrmw xor i16* @sc16, i16 5 acquire 122 %t2 = atomicrmw xor i16* @sc16, i16 5 acquire
123 ; X64: xorl 123 ; X64: xorl
124 ; X64: lock 124 ; X64: lock
125 ; X64: cmpxchgw 125 ; X64: cmpxchgw
126 ; X32: xorl 126 ; X32: xorl
127 ; X32: lock 127 ; X32: lock
128 ; X32: cmpxchgw 128 ; X32: cmpxchgw
129 %t3 = atomicrmw xor i16* @sc16, i16 %t2 acquire 129 %t3 = atomicrmw xor i16* @sc16, i16 %t2 acquire
130 ; X64: lock 130 ; X64: lock
131 ; X64: xorw {{.*}} # encoding: [0xf0,0x66 131 ; X64: xorw {{.*}} # encoding: [0x66,0xf0
132 ; X32: lock 132 ; X32: lock
133 ; X32: xorw 133 ; X32: xorw
134 ret void 134 ret void
135 ; X64: ret 135 ; X64: ret
136 ; X32: ret 136 ; X32: ret
137 } 137 }
138 138
139 define void @atomic_fetch_nand16(i16 %x) nounwind { 139 define void @atomic_fetch_nand16(i16 %x) nounwind {
140 ; X64-LABEL: atomic_fetch_nand16 140 ; X64-LABEL: atomic_fetch_nand16
141 ; X32-LABEL: atomic_fetch_nand16 141 ; X32-LABEL: atomic_fetch_nand16
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 define void @atomic_fetch_swap16(i16 %x) nounwind { 258 define void @atomic_fetch_swap16(i16 %x) nounwind {
259 %t1 = atomicrmw xchg i16* @sc16, i16 %x acquire 259 %t1 = atomicrmw xchg i16* @sc16, i16 %x acquire
260 ; X64-NOT: lock 260 ; X64-NOT: lock
261 ; X64: xchgw 261 ; X64: xchgw
262 ; X32-NOT: lock 262 ; X32-NOT: lock
263 ; X32: xchgw 263 ; X32: xchgw
264 ret void 264 ret void
265 ; X64: ret 265 ; X64: ret
266 ; X32: ret 266 ; X32: ret
267 } 267 }
OLDNEW
« no previous file with comments | « test/CodeGen/ARM/varargs-spill-stack-align-nacl.ll ('k') | test/CodeGen/X86/cmpxchg-clobber-flags.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698