Skip to content

Commit ecb38ee

Browse files
committed
changed test case based on the new behavious
1 parent ef5f51f commit ecb38ee

File tree

11 files changed

+8239
-7320
lines changed

11 files changed

+8239
-7320
lines changed

llvm/include/llvm/IR/IntrinsicsPowerPC.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1836,19 +1836,15 @@ let TargetPrefix = "ppc" in {
18361836
def int_ppc_iospace_eieio : ClangBuiltin<"__builtin_ppc_iospace_eieio">,
18371837
Intrinsic<[],[],[]>;
18381838
def int_ppc_lbarx :
1839-
ClangBuiltin<"__builtin_ppc_lbarx">,
18401839
Intrinsic<[llvm_i32_ty], [llvm_ptr_ty],
18411840
[IntrReadMem, IntrArgMemOnly, IntrNoDuplicate]>;
18421841
def int_ppc_lharx :
1843-
ClangBuiltin<"__builtin_ppc_lharx">,
18441842
Intrinsic<[llvm_i32_ty],[llvm_ptr_ty],
18451843
[IntrReadMem, IntrArgMemOnly, IntrNoDuplicate]>;
18461844
def int_ppc_lwarx :
1847-
ClangBuiltin<"__builtin_ppc_lwarx">,
18481845
Intrinsic<[llvm_i32_ty], [llvm_ptr_ty],
18491846
[IntrReadMem, IntrArgMemOnly, IntrNoDuplicate]>;
18501847
def int_ppc_ldarx :
1851-
ClangBuiltin<"__builtin_ppc_ldarx">,
18521848
Intrinsic<[llvm_i64_ty],[llvm_ptr_ty],
18531849
[IntrReadMem, IntrArgMemOnly, IntrNoDuplicate]>;
18541850

llvm/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll

Lines changed: 77 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -15,50 +15,57 @@ define signext i32 @main() nounwind {
1515
; CHECK-NEXT: stdu 1, -48(1)
1616
; CHECK-NEXT: li 3, -32477
1717
; CHECK-NEXT: std 0, 64(1)
18-
; CHECK-NEXT: li 4, 234
19-
; CHECK-NEXT: addi 6, 1, 46
2018
; CHECK-NEXT: sth 3, 46(1)
21-
; CHECK-NEXT: lis 3, 0
19+
; CHECK-NEXT: addi 3, 1, 46
20+
; CHECK-NEXT: lharx 4, 0, 3
21+
; CHECK-NEXT: clrlwi 4, 4, 16
22+
; CHECK-NEXT: cmplwi 4, 33059
23+
; CHECK-NEXT: bne 0, .LBB0_4
24+
; CHECK-NEXT: # %bb.1: # %cmpxchg.fencedstore
2225
; CHECK-NEXT: sync
23-
; CHECK-NEXT: ori 3, 3, 33059
24-
; CHECK-NEXT: .LBB0_1: # %L.entry
25-
; CHECK-NEXT: #
26-
; CHECK-NEXT: lharx 5, 0, 6
27-
; CHECK-NEXT: cmpw 5, 3
28-
; CHECK-NEXT: bne 0, .LBB0_3
29-
; CHECK-NEXT: # %bb.2: # %L.entry
30-
; CHECK-NEXT: #
31-
; CHECK-NEXT: sthcx. 4, 0, 6
32-
; CHECK-NEXT: bne 0, .LBB0_1
33-
; CHECK-NEXT: .LBB0_3: # %L.entry
34-
; CHECK-NEXT: cmplwi 5, 33059
26+
; CHECK-NEXT: li 4, 234
27+
; CHECK-NEXT: .p2align 5
28+
; CHECK-NEXT: .LBB0_2: # %cmpxchg.trystore
29+
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
30+
; CHECK-NEXT: sthcx. 4, 0, 3
31+
; CHECK-NEXT: beq 0, .LBB0_7
32+
; CHECK-NEXT: # %bb.3: # %cmpxchg.releasedload
33+
; CHECK-NEXT: # in Loop: Header=BB0_2 Depth=1
34+
; CHECK-NEXT: lharx 5, 0, 3
35+
; CHECK-NEXT: clrlwi 5, 5, 16
36+
; CHECK-NEXT: cmplwi 5, 33059
37+
; CHECK-NEXT: beq 0, .LBB0_2
38+
; CHECK-NEXT: .LBB0_4: # %cmpxchg.nostore
3539
; CHECK-NEXT: lwsync
36-
; CHECK-NEXT: bne 0, .LBB0_6
37-
; CHECK-NEXT: # %bb.4: # %L.B0000
40+
; CHECK-NEXT: b .LBB0_8
41+
; CHECK-NEXT: .LBB0_5: # %L.B0000
3842
; CHECK-NEXT: lhz 3, 46(1)
39-
; CHECK-NEXT: cmplwi 3, 234
40-
; CHECK-NEXT: bne 0, .LBB0_7
41-
; CHECK-NEXT: # %bb.5: # %L.B0001
43+
; CHECK-NEXT: cmplwi 3, 234
44+
; CHECK-NEXT: bne 0, .LBB0_9
45+
; CHECK-NEXT: # %bb.6: # %L.B0001
4246
; CHECK-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
4347
; CHECK-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
4448
; CHECK-NEXT: bl puts
4549
; CHECK-NEXT: nop
4650
; CHECK-NEXT: li 3, 0
47-
; CHECK-NEXT: b .LBB0_9
48-
; CHECK-NEXT: .LBB0_6: # %L.B0003
51+
; CHECK-NEXT: b .LBB0_11
52+
; CHECK-NEXT: .LBB0_7: # %cmpxchg.success
53+
; CHECK-NEXT: lwsync
54+
; CHECK-NEXT: b .LBB0_5
55+
; CHECK-NEXT: .LBB0_8: # %L.B0003
4956
; CHECK-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
5057
; CHECK-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
5158
; CHECK-NEXT: addi 3, 3, 16
52-
; CHECK-NEXT: b .LBB0_8
53-
; CHECK-NEXT: .LBB0_7: # %L.B0005
59+
; CHECK-NEXT: b .LBB0_10
60+
; CHECK-NEXT: .LBB0_9: # %L.B0005
5461
; CHECK-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
5562
; CHECK-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
5663
; CHECK-NEXT: addi 3, 3, 64
57-
; CHECK-NEXT: .LBB0_8: # %L.B0003
64+
; CHECK-NEXT: .LBB0_10: # %L.B0003
5865
; CHECK-NEXT: bl puts
5966
; CHECK-NEXT: nop
6067
; CHECK-NEXT: li 3, 1
61-
; CHECK-NEXT: .LBB0_9: # %L.B0003
68+
; CHECK-NEXT: .LBB0_11: # %L.B0003
6269
; CHECK-NEXT: addi 1, 1, 48
6370
; CHECK-NEXT: ld 0, 16(1)
6471
; CHECK-NEXT: mtlr 0
@@ -69,64 +76,69 @@ define signext i32 @main() nounwind {
6976
; CHECK-P7-NEXT: mflr 0
7077
; CHECK-P7-NEXT: stdu 1, -48(1)
7178
; CHECK-P7-NEXT: li 3, -32477
72-
; CHECK-P7-NEXT: std 0, 64(1)
7379
; CHECK-P7-NEXT: addi 4, 1, 46
74-
; CHECK-P7-NEXT: li 6, 234
80+
; CHECK-P7-NEXT: std 0, 64(1)
7581
; CHECK-P7-NEXT: sth 3, 46(1)
76-
; CHECK-P7-NEXT: lis 3, 0
82+
; CHECK-P7-NEXT: rldicr 3, 4, 0, 61
83+
; CHECK-P7-NEXT: rlwinm 4, 4, 3, 27, 27
84+
; CHECK-P7-NEXT: lwarx 5, 0, 3
85+
; CHECK-P7-NEXT: srw 6, 5, 4
86+
; CHECK-P7-NEXT: clrlwi 6, 6, 16
87+
; CHECK-P7-NEXT: cmplwi 6, 33059
88+
; CHECK-P7-NEXT: bne 0, .LBB0_4
89+
; CHECK-P7-NEXT: # %bb.1: # %cmpxchg.fencedstore
90+
; CHECK-P7-NEXT: lis 6, 0
91+
; CHECK-P7-NEXT: li 7, 234
7792
; CHECK-P7-NEXT: sync
78-
; CHECK-P7-NEXT: ori 5, 3, 33059
79-
; CHECK-P7-NEXT: rlwinm 3, 4, 3, 27, 27
80-
; CHECK-P7-NEXT: rldicr 4, 4, 0, 61
81-
; CHECK-P7-NEXT: slw 7, 5, 3
82-
; CHECK-P7-NEXT: li 5, 0
83-
; CHECK-P7-NEXT: slw 6, 6, 3
84-
; CHECK-P7-NEXT: ori 5, 5, 65535
85-
; CHECK-P7-NEXT: slw 5, 5, 3
86-
; CHECK-P7-NEXT: and 6, 6, 5
87-
; CHECK-P7-NEXT: and 7, 7, 5
88-
; CHECK-P7-NEXT: .LBB0_1: # %L.entry
89-
; CHECK-P7-NEXT: #
90-
; CHECK-P7-NEXT: lwarx 9, 0, 4
91-
; CHECK-P7-NEXT: and 8, 9, 5
92-
; CHECK-P7-NEXT: cmpw 8, 7
93-
; CHECK-P7-NEXT: bne 0, .LBB0_3
94-
; CHECK-P7-NEXT: # %bb.2: # %L.entry
95-
; CHECK-P7-NEXT: #
96-
; CHECK-P7-NEXT: andc 9, 9, 5
97-
; CHECK-P7-NEXT: or 9, 9, 6
98-
; CHECK-P7-NEXT: stwcx. 9, 0, 4
99-
; CHECK-P7-NEXT: bne 0, .LBB0_1
100-
; CHECK-P7-NEXT: .LBB0_3: # %L.entry
101-
; CHECK-P7-NEXT: srw 3, 8, 3
93+
; CHECK-P7-NEXT: ori 6, 6, 65535
94+
; CHECK-P7-NEXT: slw 7, 7, 4
95+
; CHECK-P7-NEXT: slw 6, 6, 4
96+
; CHECK-P7-NEXT: not 6, 6
97+
; CHECK-P7-NEXT: .p2align 4
98+
; CHECK-P7-NEXT: .LBB0_2: # %cmpxchg.trystore
99+
; CHECK-P7-NEXT: # =>This Inner Loop Header: Depth=1
100+
; CHECK-P7-NEXT: and 5, 5, 6
101+
; CHECK-P7-NEXT: or 5, 5, 7
102+
; CHECK-P7-NEXT: stwcx. 5, 0, 3
103+
; CHECK-P7-NEXT: beq 0, .LBB0_7
104+
; CHECK-P7-NEXT: # %bb.3: # %cmpxchg.releasedload
105+
; CHECK-P7-NEXT: # in Loop: Header=BB0_2 Depth=1
106+
; CHECK-P7-NEXT: lwarx 5, 0, 3
107+
; CHECK-P7-NEXT: srw 8, 5, 4
108+
; CHECK-P7-NEXT: clrlwi 8, 8, 16
109+
; CHECK-P7-NEXT: cmplwi 8, 33059
110+
; CHECK-P7-NEXT: beq 0, .LBB0_2
111+
; CHECK-P7-NEXT: .LBB0_4: # %cmpxchg.nostore
102112
; CHECK-P7-NEXT: lwsync
103-
; CHECK-P7-NEXT: cmplwi 3, 33059
104-
; CHECK-P7-NEXT: bne 0, .LBB0_6
105-
; CHECK-P7-NEXT: # %bb.4: # %L.B0000
113+
; CHECK-P7-NEXT: b .LBB0_8
114+
; CHECK-P7-NEXT: .LBB0_5: # %L.B0000
106115
; CHECK-P7-NEXT: lhz 3, 46(1)
107-
; CHECK-P7-NEXT: cmplwi 3, 234
108-
; CHECK-P7-NEXT: bne 0, .LBB0_7
109-
; CHECK-P7-NEXT: # %bb.5: # %L.B0001
116+
; CHECK-P7-NEXT: cmplwi 3, 234
117+
; CHECK-P7-NEXT: bne 0, .LBB0_9
118+
; CHECK-P7-NEXT: # %bb.6: # %L.B0001
110119
; CHECK-P7-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
111120
; CHECK-P7-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
112121
; CHECK-P7-NEXT: bl puts
113122
; CHECK-P7-NEXT: nop
114123
; CHECK-P7-NEXT: li 3, 0
115-
; CHECK-P7-NEXT: b .LBB0_9
116-
; CHECK-P7-NEXT: .LBB0_6: # %L.B0003
124+
; CHECK-P7-NEXT: b .LBB0_11
125+
; CHECK-P7-NEXT: .LBB0_7: # %cmpxchg.success
126+
; CHECK-P7-NEXT: lwsync
127+
; CHECK-P7-NEXT: b .LBB0_5
128+
; CHECK-P7-NEXT: .LBB0_8: # %L.B0003
117129
; CHECK-P7-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
118130
; CHECK-P7-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
119131
; CHECK-P7-NEXT: addi 3, 3, 16
120-
; CHECK-P7-NEXT: b .LBB0_8
121-
; CHECK-P7-NEXT: .LBB0_7: # %L.B0005
132+
; CHECK-P7-NEXT: b .LBB0_10
133+
; CHECK-P7-NEXT: .LBB0_9: # %L.B0005
122134
; CHECK-P7-NEXT: addis 3, 2, .L_MergedGlobals@toc@ha
123135
; CHECK-P7-NEXT: addi 3, 3, .L_MergedGlobals@toc@l
124136
; CHECK-P7-NEXT: addi 3, 3, 64
125-
; CHECK-P7-NEXT: .LBB0_8: # %L.B0003
137+
; CHECK-P7-NEXT: .LBB0_10: # %L.B0003
126138
; CHECK-P7-NEXT: bl puts
127139
; CHECK-P7-NEXT: nop
128140
; CHECK-P7-NEXT: li 3, 1
129-
; CHECK-P7-NEXT: .LBB0_9: # %L.B0003
141+
; CHECK-P7-NEXT: .LBB0_11: # %L.B0003
130142
; CHECK-P7-NEXT: addi 1, 1, 48
131143
; CHECK-P7-NEXT: ld 0, 16(1)
132144
; CHECK-P7-NEXT: mtlr 0

0 commit comments

Comments
 (0)