brintos

brintos / llvm-project-archived public Read only

0
0
Text · 695 B · afe5125 Raw
30 lines · c
1// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s2 3/* WG14 N1391: Yes4 * Floating-point to int/_Bool conversions5 */6 7int neg_zero(void) {8  // CHECK: define{{.*}} i32 @neg_zero()9  return (_Bool)-0.0 ? -1 : 1; // Negative zero -> false10  // CHECK: ret i32 111}12 13int pos_inf(void) {14  // CHECK: define{{.*}} i32 @pos_inf()15  return (_Bool)(1.0f / 0.0f) ? 1 : -1; // Positive inf -> true16  // CHECK: ret i32 117}18 19int neg_inf(void) {20  // CHECK: define{{.*}} i32 @neg_inf()21  return (_Bool)(-1.0f / 0.0f) ? 1 : -1; // Negative inf -> true22  // CHECK: ret i32 123}24 25int nan(void) {26  // CHECK: define{{.*}} i32 @nan()27  return (_Bool)(0.0f / 0.0f) ? 1 : -1; // NaN -> true28  // CHECK: ret i32 129}30