1*67e74705SXin Li// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s -check-prefix=NORMAL 2*67e74705SXin Li// RUN: %clang_cc1 %s -emit-llvm -cl-fast-relaxed-math -o - | FileCheck %s -check-prefix=FAST 3*67e74705SXin Li// RUN: %clang_cc1 %s -emit-llvm -cl-finite-math-only -o - | FileCheck %s -check-prefix=FINITE 4*67e74705SXin Li// RUN: %clang_cc1 %s -emit-llvm -cl-unsafe-math-optimizations -o - | FileCheck %s -check-prefix=UNSAFE 5*67e74705SXin Li 6*67e74705SXin Litypedef __attribute__(( ext_vector_type(4) )) float float4; 7*67e74705SXin Li 8*67e74705SXin Lifloat spscalardiv(float a, float b) { 9*67e74705SXin Li // CHECK: @spscalardiv( 10*67e74705SXin Li 11*67e74705SXin Li // NORMAL: fdiv float 12*67e74705SXin Li // FAST: fdiv fast float 13*67e74705SXin Li // FINITE: fdiv nnan ninf float 14*67e74705SXin Li // UNSAFE: fdiv nnan float 15*67e74705SXin Li return a / b; 16*67e74705SXin Li} 17*67e74705SXin Li// CHECK: attributes 18*67e74705SXin Li 19*67e74705SXin Li// NORMAL: "no-infs-fp-math"="false" 20*67e74705SXin Li// NORMAL: "no-nans-fp-math"="false" 21*67e74705SXin Li// NORMAL: "unsafe-fp-math"="false" 22*67e74705SXin Li 23*67e74705SXin Li// FAST: "no-infs-fp-math"="true" 24*67e74705SXin Li// FAST: "no-nans-fp-math"="true" 25*67e74705SXin Li// FAST: "unsafe-fp-math"="true" 26*67e74705SXin Li 27*67e74705SXin Li// FINITE: "no-infs-fp-math"="true" 28*67e74705SXin Li// FINITE: "no-nans-fp-math"="true" 29*67e74705SXin Li// FINITE: "unsafe-fp-math"="false" 30*67e74705SXin Li 31*67e74705SXin Li// UNSAFE: "no-infs-fp-math"="false" 32*67e74705SXin Li// UNSAFE: "no-nans-fp-math"="true" 33*67e74705SXin Li// UNSAFE: "unsafe-fp-math"="true" 34*67e74705SXin Li 35