@@ -1368,6 +1368,7 @@ llvm.func @omp_atomic_read(%arg0 : !llvm.ptr, %arg1 : !llvm.ptr) -> () {
1368
1368
1369
1369
// CHECK-LABEL: @omp_atomic_read_implicit_cast
1370
1370
llvm.func @omp_atomic_read_implicit_cast () {
1371
+ //CHECK: %[[ATOMIC_LOAD_TEMP:.*]] = alloca { float, float }, align 8
1371
1372
//CHECK: %[[Z:.*]] = alloca float, i64 1, align 4
1372
1373
//CHECK: %[[Y:.*]] = alloca double, i64 1, align 8
1373
1374
//CHECK: %[[X:.*]] = alloca [2 x { float, float }], i64 1, align 8
@@ -1392,7 +1393,7 @@ llvm.func @omp_atomic_read_implicit_cast () {
1392
1393
%16 = llvm.mul %10 , %9 overflow <nsw > : i64
1393
1394
%17 = llvm.getelementptr %5 [%15 ] : (!llvm.ptr , i64 ) -> !llvm.ptr , !llvm.struct <(f32 , f32 )>
1394
1395
1395
- //CHECK: %[[ATOMIC_LOAD_TEMP:.*]] = alloca { float, float }, align 8
1396
+
1396
1397
//CHECK: call void @__atomic_load(i64 8, ptr %[[X_ELEMENT]], ptr %[[ATOMIC_LOAD_TEMP]], i32 0)
1397
1398
//CHECK: %[[LOAD:.*]] = load { float, float }, ptr %[[ATOMIC_LOAD_TEMP]], align 8
1398
1399
//CHECK: %[[EXT:.*]] = extractvalue { float, float } %[[LOAD]], 0
@@ -1480,14 +1481,14 @@ llvm.func @omp_atomic_update(%x:!llvm.ptr, %expr: i32, %xbool: !llvm.ptr, %exprb
1480
1481
1481
1482
// -----
1482
1483
1484
+ //CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1483
1485
//CHECK: %[[X_NEW_VAL:.*]] = alloca { float, float }, align 8
1484
1486
//CHECK: {{.*}} = alloca { float, float }, i64 1, align 8
1485
1487
//CHECK: %[[ORIG_VAL:.*]] = alloca { float, float }, i64 1, align 8
1486
1488
1487
1489
//CHECK: br label %entry
1488
1490
1489
1491
//CHECK: entry:
1490
- //CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1491
1492
//CHECK: call void @__atomic_load(i64 8, ptr %[[ORIG_VAL]], ptr %[[ATOMIC_TEMP_LOAD]], i32 0)
1492
1493
//CHECK: %[[PHI_NODE_ENTRY_1:.*]] = load { float, float }, ptr %[[ATOMIC_TEMP_LOAD]], align 8
1493
1494
//CHECK: br label %.atomic.cont
@@ -1532,14 +1533,14 @@ llvm.func @_QPomp_atomic_update_complex() {
1532
1533
1533
1534
// -----
1534
1535
1536
+ //CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1535
1537
//CHECK: %[[X_NEW_VAL:.*]] = alloca { float, float }, align 8
1536
1538
//CHECK: %[[VAL_1:.*]] = alloca { float, float }, i64 1, align 8
1537
1539
//CHECK: %[[ORIG_VAL:.*]] = alloca { float, float }, i64 1, align 8
1538
1540
//CHECK: store { float, float } { float 2.000000e+00, float 2.000000e+00 }, ptr %[[ORIG_VAL]], align 4
1539
1541
//CHECK: br label %entry
1540
1542
1541
1543
//CHECK: entry: ; preds = %0
1542
- //CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1543
1544
//CHECK: call void @__atomic_load(i64 8, ptr %[[ORIG_VAL]], ptr %[[ATOMIC_TEMP_LOAD]], i32 0)
1544
1545
//CHECK: %[[PHI_NODE_ENTRY_1:.*]] = load { float, float }, ptr %[[ATOMIC_TEMP_LOAD]], align 8
1545
1546
//CHECK: br label %.atomic.cont
@@ -1597,9 +1598,9 @@ llvm.func @_QPomp_atomic_capture_complex() {
1597
1598
// CHECK-LABEL: define void @omp_atomic_read_complex() {
1598
1599
llvm.func @omp_atomic_read_complex (){
1599
1600
1601
+ // CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1600
1602
// CHECK: %[[a:.*]] = alloca { float, float }, i64 1, align 8
1601
1603
// CHECK: %[[b:.*]] = alloca { float, float }, i64 1, align 8
1602
- // CHECK: %[[ATOMIC_TEMP_LOAD:.*]] = alloca { float, float }, align 8
1603
1604
// CHECK: call void @__atomic_load(i64 8, ptr %[[b]], ptr %[[ATOMIC_TEMP_LOAD]], i32 0)
1604
1605
// CHECK: %[[LOADED_VAL:.*]] = load { float, float }, ptr %[[ATOMIC_TEMP_LOAD]], align 8
1605
1606
// CHECK: store { float, float } %[[LOADED_VAL]], ptr %[[a]], align 4
0 commit comments