Skip to content

Commit a40f666

Browse files
committed
Do a bunch of review stuff Andy suggested:
-Fix 'largest negative' for floats. -Make complex just emit 'zero', we are going to make it ill-formed, but it should produce a valid initializer at least -update all tests to properly check exponent for floats too.
1 parent e6fce23 commit a40f666

15 files changed

+222
-217
lines changed

clang/lib/Sema/SemaOpenACC.cpp

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2590,16 +2590,18 @@ SemaOpenACC::ActOnOpenACCAsteriskSizeExpr(SourceLocation AsteriskLoc) {
25902590
}
25912591

25922592
namespace {
2593-
enum class InitKind { One, AllOnes, Least, Largest };
2593+
enum class InitKind { Zero, One, AllOnes, Least, Largest };
25942594
llvm::APFloat getInitFloatValue(ASTContext &Context, InitKind IK, QualType Ty) {
25952595
switch (IK) {
2596+
case InitKind::Zero:
2597+
return llvm::APFloat::getZero(Context.getFloatTypeSemantics(Ty));
25962598
case InitKind::One:
25972599
return llvm::APFloat::getOne(Context.getFloatTypeSemantics(Ty));
25982600
case InitKind::AllOnes:
25992601
return llvm::APFloat::getAllOnesValue(Context.getFloatTypeSemantics(Ty));
26002602
case InitKind::Least:
2601-
return llvm::APFloat::getSmallestNormalized(
2602-
Context.getFloatTypeSemantics(Ty), /*Negative=*/true);
2603+
return llvm::APFloat::getLargest(Context.getFloatTypeSemantics(Ty),
2604+
/*Negative=*/true);
26032605
case InitKind::Largest:
26042606
return llvm::APFloat::getLargest(Context.getFloatTypeSemantics(Ty));
26052607
break;
@@ -2609,6 +2611,8 @@ llvm::APFloat getInitFloatValue(ASTContext &Context, InitKind IK, QualType Ty) {
26092611

26102612
llvm::APInt getInitIntValue(ASTContext &Context, InitKind IK, QualType Ty) {
26112613
switch (IK) {
2614+
case InitKind::Zero:
2615+
return llvm::APInt(Context.getIntWidth(Ty), 0);
26122616
case InitKind::One:
26132617
return llvm::APInt(Context.getIntWidth(Ty), 1);
26142618
case InitKind::AllOnes:
@@ -2666,23 +2670,24 @@ Expr *GenerateReductionInitRecipeExpr(ASTContext &Context,
26662670

26672671
if (const auto *Cplx = Ty->getAs<ComplexType>()) {
26682672
// we can get here in error cases, so make sure we generate something that
2669-
// will work if we find ourselves wanting to enable this.
2673+
// will work if we find ourselves wanting to enable this, so emit '0,0'
2674+
// for both ints and floats.
26702675

26712676
QualType EltTy = Cplx->getElementType();
26722677
if (EltTy->isFloatingType()) {
26732678
Exprs.push_back(FloatingLiteral::Create(
2674-
Context, getInitFloatValue(Context, IK, EltTy),
2679+
Context, getInitFloatValue(Context, InitKind::Zero, EltTy),
26752680
/*isExact=*/true, EltTy, ExprRange.getBegin()));
26762681
Exprs.push_back(FloatingLiteral::Create(
2677-
Context, getInitFloatValue(Context, IK, EltTy),
2682+
Context, getInitFloatValue(Context, InitKind::Zero, EltTy),
26782683
/*isExact=*/true, EltTy, ExprRange.getBegin()));
26792684
} else {
2680-
Exprs.push_back(
2681-
IntegerLiteral::Create(Context, getInitIntValue(Context, IK, EltTy),
2682-
EltTy, ExprRange.getBegin()));
2683-
Exprs.push_back(
2684-
IntegerLiteral::Create(Context, getInitIntValue(Context, IK, EltTy),
2685-
EltTy, ExprRange.getBegin()));
2685+
Exprs.push_back(IntegerLiteral::Create(
2686+
Context, getInitIntValue(Context, InitKind::Zero, EltTy), EltTy,
2687+
ExprRange.getBegin()));
2688+
Exprs.push_back(IntegerLiteral::Create(
2689+
Context, getInitIntValue(Context, InitKind::Zero, EltTy), EltTy,
2690+
ExprRange.getBegin()));
26862691
}
26872692

26882693
} else if (Ty->isFloatingType()) {

clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-default-ops.cpp

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ struct DefaultOperators {
353353
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
354354
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
355355
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[DECAY]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
356-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+38> : !cir.double
356+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
357357
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
358358
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[DECAY]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
359359
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -371,7 +371,7 @@ struct DefaultOperators {
371371
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
372372
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
373373
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
374-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+38> : !cir.double
374+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
375375
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
376376
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
377377
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -389,7 +389,7 @@ struct DefaultOperators {
389389
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
390390
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
391391
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
392-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+38> : !cir.double
392+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
393393
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
394394
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
395395
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -408,7 +408,7 @@ struct DefaultOperators {
408408
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
409409
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
410410
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
411-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+38> : !cir.double
411+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
412412
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
413413
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
414414
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -423,10 +423,10 @@ struct DefaultOperators {
423423
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.int<4294967295> : !u32i
424424
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
425425
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[NEXT_ELT]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
426-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}+E38> : !cir.float
426+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
427427
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
428428
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
429-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+38> : !cir.double
429+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
430430
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
431431
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
432432
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -451,10 +451,10 @@ struct DefaultOperators {
451451
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
452452
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
453453
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[DECAY]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
454-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
454+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
455455
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
456456
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[DECAY]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
457-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
457+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
458458
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
459459
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[DECAY]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
460460
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false
@@ -469,10 +469,10 @@ struct DefaultOperators {
469469
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
470470
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
471471
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[NEXT_ELT]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
472-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
472+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
473473
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
474474
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
475-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
475+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
476476
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
477477
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
478478
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false
@@ -487,10 +487,10 @@ struct DefaultOperators {
487487
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
488488
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
489489
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[NEXT_ELT]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
490-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
490+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
491491
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
492492
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
493-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
493+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
494494
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
495495
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
496496
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false
@@ -506,10 +506,10 @@ struct DefaultOperators {
506506
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
507507
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
508508
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[NEXT_ELT]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
509-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
509+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
510510
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
511511
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
512-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
512+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
513513
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
514514
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
515515
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false
@@ -524,10 +524,10 @@ struct DefaultOperators {
524524
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
525525
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
526526
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[NEXT_ELT]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
527-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
527+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
528528
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
529529
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[NEXT_ELT]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
530-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
530+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
531531
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
532532
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[NEXT_ELT]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
533533
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false
@@ -828,7 +828,7 @@ struct DefaultOperators {
828828
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<3.4{{.*}}E+38> : !cir.float
829829
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
830830
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[ALLOCA]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
831-
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}> : !cir.double
831+
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #cir.fp<1.7{{.*}}E+308> : !cir.double
832832
// CHECK-NEXT: cir.store {{.*}} %[[LARGEST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
833833
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[ALLOCA]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
834834
// CHECK-NEXT: %[[LARGEST:.*]] = cir.const #true
@@ -851,10 +851,10 @@ struct DefaultOperators {
851851
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.int<0> : !u32i
852852
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_U]] : !u32i, !cir.ptr<!u32i>
853853
// CHECK-NEXT: %[[GET_F:.*]] = cir.get_member %[[ALLOCA]][2] {name = "f"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.float>
854-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.1{{.*}}E+38> : !cir.float
854+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
855855
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_F]] : !cir.float, !cir.ptr<!cir.float>
856856
// CHECK-NEXT: %[[GET_D:.*]] = cir.get_member %[[ALLOCA]][3] {name = "d"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.double>
857-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-2.2{{.*}}E+38> : !cir.double
857+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1.7{{.*}}E+308> : !cir.double
858858
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[GET_D]] : !cir.double, !cir.ptr<!cir.double>
859859
// CHECK-NEXT: %[[GET_B:.*]] = cir.get_member %[[ALLOCA]][4] {name = "b"} : !cir.ptr<!rec_DefaultOperators> -> !cir.ptr<!cir.bool>
860860
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #false

clang/test/CIR/CodeGenOpenACC/combined-reduction-clause-float.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,23 +182,23 @@
182182
// CHECK-NEXT: ^bb0(%[[ARG:.*]]: !cir.ptr<!cir.array<!cir.float x 5>>{{.*}})
183183
// CHECK-NEXT: %[[ALLOCA:.*]] = cir.alloca !cir.array<!cir.float x 5>, !cir.ptr<!cir.array<!cir.float x 5>>, ["openacc.reduction.init", init]
184184
// CHECK-NEXT: %[[DECAY:.*]] = cir.cast(array_to_ptrdecay, %[[ALLOCA]] : !cir.ptr<!cir.array<!cir.float x 5>>), !cir.ptr<!cir.float>
185-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
185+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
186186
// CHECK-NEXT: cir.store{{.*}} %[[LEAST]], %[[DECAY]] : !cir.float, !cir.ptr<!cir.float>
187187
// CHECK-NEXT: %[[ONE_IDX:.*]] = cir.const #cir.int<1> : !s64i
188188
// CHECK-NEXT: %[[NEXT_ELT:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!cir.float>, %[[ONE_IDX]] : !s64i), !cir.ptr<!cir.float>
189-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
189+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
190190
// CHECK-NEXT: cir.store{{.*}} %[[LEAST]], %[[NEXT_ELT]] : !cir.float, !cir.ptr<!cir.float>
191191
// CHECK-NEXT: %[[TWO_IDX:.*]] = cir.const #cir.int<2> : !s64i
192192
// CHECK-NEXT: %[[NEXT_ELT:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!cir.float>, %[[TWO_IDX]] : !s64i), !cir.ptr<!cir.float>
193-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
193+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
194194
// CHECK-NEXT: cir.store{{.*}} %[[LEAST]], %[[NEXT_ELT]] : !cir.float, !cir.ptr<!cir.float>
195195
// CHECK-NEXT: %[[THREE_IDX:.*]] = cir.const #cir.int<3> : !s64i
196196
// CHECK-NEXT: %[[NEXT_ELT:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!cir.float>, %[[THREE_IDX]] : !s64i), !cir.ptr<!cir.float>
197-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
197+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
198198
// CHECK-NEXT: cir.store{{.*}} %[[LEAST]], %[[NEXT_ELT]] : !cir.float, !cir.ptr<!cir.float>
199199
// CHECK-NEXT: %[[FOUR_IDX:.*]] = cir.const #cir.int<4> : !s64i
200200
// CHECK-NEXT: %[[NEXT_ELT:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!cir.float>, %[[FOUR_IDX]] : !s64i), !cir.ptr<!cir.float>
201-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
201+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
202202
// CHECK-NEXT: cir.store{{.*}} %[[LEAST]], %[[NEXT_ELT]] : !cir.float, !cir.ptr<!cir.float>
203203
// CHECK-NEXT: acc.yield
204204
//
@@ -346,7 +346,7 @@
346346
// CHECK-NEXT: acc.reduction.recipe @reduction_max__ZTSf : !cir.ptr<!cir.float> reduction_operator <max> init {
347347
// CHECK-NEXT: ^bb0(%[[ARG:.*]]: !cir.ptr<!cir.float>{{.*}})
348348
// CHECK-NEXT: %[[ALLOCA:.*]] = cir.alloca !cir.float, !cir.ptr<!cir.float>, ["openacc.reduction.init", init]
349-
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-1{{.*}}E+38> : !cir.float
349+
// CHECK-NEXT: %[[LEAST:.*]] = cir.const #cir.fp<-3.4{{.*}}E+38> : !cir.float
350350
// CHECK-NEXT: cir.store {{.*}} %[[LEAST]], %[[ALLOCA]] : !cir.float, !cir.ptr<!cir.float>
351351
// CHECK-NEXT: acc.yield
352352
// CHECK-NEXT: } combiner {

0 commit comments

Comments
 (0)