Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
ChuanqiXu9 committed Oct 17, 2024
1 parent ff0ebd9 commit fb652e1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion clang/include/clang/CIR/Dialect/IR/CIROps.td
Original file line number Diff line number Diff line change
Expand Up @@ -4049,7 +4049,7 @@ def IsFPClassOp : CIR_Op<"is_fp_class"> {
I32Attr:$flags);
let results = (outs CIR_BoolType:$result);
let assemblyFormat = [{
`(` $src`,` $flags `)` `:` functional-type($src, $result) attr-dict
$src `,` $flags `:` functional-type($src, $result) attr-dict
}];
}

Expand Down
32 changes: 16 additions & 16 deletions clang/test/CIR/CodeGen/builtin-isfpclass.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,66 +7,66 @@ int finite(double);
void test_is_finite(__fp16 *H, float F, double D, long double LD) {
volatile int res;
res = __builtin_isinf(*H);
// CHECK: cir.is_fp_class(%{{.*}}, 516) : (!cir.f16) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 516 : (!cir.f16) -> !cir.bool

res = __builtin_isinf(F);
// CHECK: cir.is_fp_class(%{{.*}}, 516) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 516 : (!cir.float) -> !cir.bool

res = __builtin_isinf(D);
// CHECK: cir.is_fp_class(%{{.*}}, 516) : (!cir.double) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 516 : (!cir.double) -> !cir.bool

res = __builtin_isinf(LD);
// CHECK: cir.is_fp_class(%{{.*}}, 516) : (!cir.long_double<!cir.f80>) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 516 : (!cir.long_double<!cir.f80>) -> !cir.bool

res = __builtin_isfinite(*H);
// CHECK: cir.is_fp_class(%{{.*}}, 504) : (!cir.f16) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 504 : (!cir.f16) -> !cir.bool
res = __builtin_isfinite(F);
// CHECK: cir.is_fp_class(%{{.*}}, 504) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 504 : (!cir.float) -> !cir.bool
res = finite(D);
// CHECK: cir.is_fp_class(%{{.*}}, 504) : (!cir.double) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 504 : (!cir.double) -> !cir.bool

res = __builtin_isnormal(*H);
// CHECK: cir.is_fp_class(%{{.*}}, 264) : (!cir.f16) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 264 : (!cir.f16) -> !cir.bool
res = __builtin_isnormal(F);
// CHECK: cir.is_fp_class(%{{.*}}, 264) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 264 : (!cir.float) -> !cir.bool

res = __builtin_issubnormal(F);
// CHECK: cir.is_fp_class(%{{.*}}, 144) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 144 : (!cir.float) -> !cir.bool
res = __builtin_iszero(F);
// CHECK: cir.is_fp_class(%{{.*}}, 96) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 96 : (!cir.float) -> !cir.bool
res = __builtin_issignaling(F);
// CHECK: cir.is_fp_class(%{{.*}}, 1) : (!cir.float) -> !cir.bool
// CHECK: cir.is_fp_class %{{.*}}, 1 : (!cir.float) -> !cir.bool
}

_Bool check_isfpclass_finite(float x) {
return __builtin_isfpclass(x, 504 /*Finite*/);
}

// CHECK: cir.func {{.*}}@check_isfpclass_finite
// CHECK: cir.is_fp_class(%{{.*}}, 504) : (!cir.float)
// CHECK: cir.is_fp_class %{{.*}}, 504 : (!cir.float)

_Bool check_isfpclass_nan_f32(float x) {
return __builtin_isfpclass(x, 3 /*NaN*/);
}

// CHECK: cir.func {{.*}}@check_isfpclass_nan_f32
// CHECK: cir.is_fp_class(%{{.*}}, 3) : (!cir.float)
// CHECK: cir.is_fp_class %{{.*}}, 3 : (!cir.float)


_Bool check_isfpclass_snan_f64(double x) {
return __builtin_isfpclass(x, 1 /*SNaN*/);
}

// CHECK: cir.func {{.*}}@check_isfpclass_snan_f64
// CHECK: cir.is_fp_class(%{{.*}}, 1) : (!cir.double)
// CHECK: cir.is_fp_class %{{.*}}, 1 : (!cir.double)


_Bool check_isfpclass_zero_f16(_Float16 x) {
return __builtin_isfpclass(x, 96 /*Zero*/);
}

// CHECK: cir.func {{.*}}@check_isfpclass_zero_f16
// CHECK: cir.is_fp_class(%{{.*}}, 96) : (!cir.f16)
// CHECK: cir.is_fp_class %{{.*}}, 96 : (!cir.f16)

// Update when we support FP pragma in functions and can convert BoolType in prvalue to i1.

Expand Down

0 comments on commit fb652e1

Please sign in to comment.