411
411
ret void
412
412
}
413
413
414
- ; FIXME: The load of QB3 should not be simplified to 0.
414
+ ; The load of QB3 should not be simplified to 0.
415
415
define void @kernel4b3 (i1 %c ) "kernel" {
416
416
; TUNIT-LABEL: define {{[^@]+}}@kernel4b3
417
417
; TUNIT-SAME: (i1 [[C:%.*]]) #[[ATTR1]] {
418
+ ; TUNIT-NEXT: store i32 0, ptr addrspace(3) @QB3, align 4
418
419
; TUNIT-NEXT: br i1 [[C]], label [[S:%.*]], label [[L:%.*]]
419
420
; TUNIT: L:
420
421
; TUNIT-NEXT: call void @sync()
421
- ; TUNIT-NEXT: call void @use1(i32 0) #[[ATTR7]]
422
+ ; TUNIT-NEXT: [[V:%.*]] = load i32, ptr addrspace(3) @QB3, align 4
423
+ ; TUNIT-NEXT: call void @use1(i32 [[V]]) #[[ATTR7]]
422
424
; TUNIT-NEXT: ret void
423
425
; TUNIT: S:
426
+ ; TUNIT-NEXT: store i32 2, ptr addrspace(3) @QB3, align 4
424
427
; TUNIT-NEXT: call void @use1(i32 0) #[[ATTR7]]
425
428
; TUNIT-NEXT: call void @use1(i32 1) #[[ATTR7]]
426
429
; TUNIT-NEXT: call void @use1(i32 2) #[[ATTR7]]
@@ -429,12 +432,15 @@ define void @kernel4b3(i1 %c) "kernel" {
429
432
;
430
433
; CGSCC-LABEL: define {{[^@]+}}@kernel4b3
431
434
; CGSCC-SAME: (i1 [[C:%.*]]) #[[ATTR1]] {
435
+ ; CGSCC-NEXT: store i32 0, ptr addrspace(3) @QB3, align 4
432
436
; CGSCC-NEXT: br i1 [[C]], label [[S:%.*]], label [[L:%.*]]
433
437
; CGSCC: L:
434
438
; CGSCC-NEXT: call void @sync()
435
- ; CGSCC-NEXT: call void @use1(i32 0) #[[ATTR6]]
439
+ ; CGSCC-NEXT: [[V:%.*]] = load i32, ptr addrspace(3) @QB3, align 4
440
+ ; CGSCC-NEXT: call void @use1(i32 [[V]]) #[[ATTR6]]
436
441
; CGSCC-NEXT: ret void
437
442
; CGSCC: S:
443
+ ; CGSCC-NEXT: store i32 2, ptr addrspace(3) @QB3, align 4
438
444
; CGSCC-NEXT: call void @use1(i32 0) #[[ATTR6]]
439
445
; CGSCC-NEXT: call void @use1(i32 1) #[[ATTR6]]
440
446
; CGSCC-NEXT: call void @use1(i32 2) #[[ATTR6]]
0 commit comments