@@ -41,8 +41,6 @@ define void @generic_acq_rel(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e) local_unnam
41
41
; CHECK: st.release.sys.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
42
42
store atomic double %f.add , ptr %e release , align 8
43
43
44
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
45
-
46
44
ret void
47
45
}
48
46
@@ -84,8 +82,6 @@ define void @generic_acq_rel_volatile(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e) lo
84
82
; CHECK: st.release.sys.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
85
83
store atomic volatile double %f.add , ptr %e release , align 8
86
84
87
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
88
-
89
85
ret void
90
86
}
91
87
@@ -139,8 +135,6 @@ define void @generic_sc(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e) local_unnamed_ad
139
135
; CHECK: st.release.sys.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
140
136
store atomic double %f.add , ptr %e seq_cst , align 8
141
137
142
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
143
-
144
138
ret void
145
139
}
146
140
@@ -194,8 +188,6 @@ define void @generic_sc_volatile(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e) local_u
194
188
; CHECK: st.release.sys.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
195
189
store atomic volatile double %f.add , ptr %e seq_cst , align 8
196
190
197
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
198
-
199
191
ret void
200
192
}
201
193
@@ -239,8 +231,6 @@ define void @global_acq_rel(ptr addrspace(1) %a, ptr addrspace(1) %b, ptr addrsp
239
231
; CHECK: st.release.sys.global.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
240
232
store atomic double %f.add , ptr addrspace (1 ) %e release , align 8
241
233
242
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
243
-
244
234
ret void
245
235
}
246
236
@@ -282,8 +272,6 @@ define void @global_acq_rel_volatile(ptr addrspace(1) %a, ptr addrspace(1) %b, p
282
272
; CHECK: st.release.sys.global.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
283
273
store atomic volatile double %f.add , ptr addrspace (1 ) %e release , align 8
284
274
285
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
286
-
287
275
ret void
288
276
}
289
277
@@ -337,8 +325,6 @@ define void @global_seq_cst(ptr addrspace(1) %a, ptr addrspace(1) %b, ptr addrsp
337
325
; CHECK: st.release.sys.global.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
338
326
store atomic double %f.add , ptr addrspace (1 ) %e seq_cst , align 8
339
327
340
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
341
-
342
328
ret void
343
329
}
344
330
@@ -392,8 +378,6 @@ define void @global_seq_cst_volatile(ptr addrspace(1) %a, ptr addrspace(1) %b, p
392
378
; CHECK: st.release.sys.global.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
393
379
store atomic volatile double %f.add , ptr addrspace (1 ) %e seq_cst , align 8
394
380
395
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
396
-
397
381
ret void
398
382
}
399
383
@@ -437,8 +421,6 @@ define void @shared_acq_rel(ptr addrspace(3) %a, ptr addrspace(3) %b, ptr addrsp
437
421
; CHECK: st.release.sys.shared.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
438
422
store atomic double %f.add , ptr addrspace (3 ) %e release , align 8
439
423
440
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
441
-
442
424
ret void
443
425
}
444
426
@@ -480,8 +462,6 @@ define void @shared_acq_rel_volatile(ptr addrspace(3) %a, ptr addrspace(3) %b, p
480
462
; CHECK: st.release.sys.shared.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
481
463
store atomic volatile double %f.add , ptr addrspace (3 ) %e release , align 8
482
464
483
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
484
-
485
465
ret void
486
466
}
487
467
@@ -535,8 +515,6 @@ define void @shared_seq_cst(ptr addrspace(3) %a, ptr addrspace(3) %b, ptr addrsp
535
515
; CHECK: st.release.sys.shared.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
536
516
store atomic double %f.add , ptr addrspace (3 ) %e seq_cst , align 8
537
517
538
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
539
-
540
518
ret void
541
519
}
542
520
@@ -590,16 +568,15 @@ define void @shared_seq_cst_volatile(ptr addrspace(3) %a, ptr addrspace(3) %b, p
590
568
; CHECK: st.release.sys.shared.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
591
569
store atomic volatile double %f.add , ptr addrspace (3 ) %e seq_cst , align 8
592
570
593
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
594
-
595
571
ret void
596
572
}
597
573
598
574
;; local statespace
599
575
600
576
; CHECK-LABEL: local_acq_rel
601
577
define void @local_acq_rel (ptr addrspace (5 ) %a , ptr addrspace (5 ) %b , ptr addrspace (5 ) %c , ptr addrspace (5 ) %d , ptr addrspace (5 ) %e ) local_unnamed_addr {
602
- ; TODO: this codegen looses Concurrent Forward Progress
578
+ ; TODO: generate PTX that preserves Concurrent Forward Progress
579
+ ; by using PTX atomic operations.
603
580
604
581
; CHECK: ld.local.u8 %rs{{[0-9]+}}, [%rd{{[0-9]+}}]
605
582
%a.load = load atomic i8 , ptr addrspace (5 ) %a acquire , align 1
@@ -637,14 +614,13 @@ define void @local_acq_rel(ptr addrspace(5) %a, ptr addrspace(5) %b, ptr addrspa
637
614
; CHECK: st.local.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
638
615
store atomic double %f.add , ptr addrspace (5 ) %e release , align 8
639
616
640
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
641
-
642
617
ret void
643
618
}
644
619
645
620
; CHECK-LABEL: local_acq_rel_volatile
646
621
define void @local_acq_rel_volatile (ptr addrspace (5 ) %a , ptr addrspace (5 ) %b , ptr addrspace (5 ) %c , ptr addrspace (5 ) %d , ptr addrspace (5 ) %e ) local_unnamed_addr {
647
- ; TODO: this codegen looses Concurrent Forward Progress
622
+ ; TODO: generate PTX that preserves Concurrent Forward Progress
623
+ ; by using PTX atomic operations.
648
624
649
625
; CHECK: ld.local.u8 %rs{{[0-9]+}}, [%rd{{[0-9]+}}]
650
626
%a.load = load atomic volatile i8 , ptr addrspace (5 ) %a acquire , align 1
@@ -682,14 +658,13 @@ define void @local_acq_rel_volatile(ptr addrspace(5) %a, ptr addrspace(5) %b, pt
682
658
; CHECK: st.local.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
683
659
store atomic volatile double %f.add , ptr addrspace (5 ) %e release , align 8
684
660
685
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
686
-
687
661
ret void
688
662
}
689
663
690
664
; CHECK-LABEL: local_seq_cst
691
665
define void @local_seq_cst (ptr addrspace (5 ) %a , ptr addrspace (5 ) %b , ptr addrspace (5 ) %c , ptr addrspace (5 ) %d , ptr addrspace (5 ) %e ) local_unnamed_addr {
692
- ; TODO: this codegen looses Concurrent Forward Progress
666
+ ; TODO: generate PTX that preserves Concurrent Forward Progress
667
+ ; by using PTX atomic operations.
693
668
694
669
; CHECK: ld.local.u8 %rs{{[0-9]+}}, [%rd{{[0-9]+}}]
695
670
%a.load = load atomic i8 , ptr addrspace (5 ) %a seq_cst , align 1
@@ -727,14 +702,13 @@ define void @local_seq_cst(ptr addrspace(5) %a, ptr addrspace(5) %b, ptr addrspa
727
702
; CHECK: st.local.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
728
703
store atomic double %f.add , ptr addrspace (5 ) %e seq_cst , align 8
729
704
730
- ; TODO: LLVM IR Verifier does not support atomics on vector types.
731
-
732
705
ret void
733
706
}
734
707
735
708
; CHECK-LABEL: local_seq_cst_volatile
736
709
define void @local_seq_cst_volatile (ptr addrspace (5 ) %a , ptr addrspace (5 ) %b , ptr addrspace (5 ) %c , ptr addrspace (5 ) %d , ptr addrspace (5 ) %e ) local_unnamed_addr {
737
- ; TODO: this codegen looses Concurrent Forward Progress
710
+ ; TODO: generate PTX that preserves Concurrent Forward Progress
711
+ ; by using PTX atomic operations.
738
712
739
713
; CHECK: ld.local.u8 %rs{{[0-9]+}}, [%rd{{[0-9]+}}]
740
714
%a.load = load atomic volatile i8 , ptr addrspace (5 ) %a seq_cst , align 1
@@ -777,5 +751,5 @@ define void @local_seq_cst_volatile(ptr addrspace(5) %a, ptr addrspace(5) %b, pt
777
751
ret void
778
752
}
779
753
780
- ; TODO: missing .const statespace tests
781
- ; TODO: missing .param statespace tests
754
+ ; TODO: add plain,atomic,volatile,atomic volatile tests
755
+ ; for .const and .param statespaces
0 commit comments