aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/X86/32bit-behavior-no-eval.c
blob: ca612e3ba717bf6c8a73bb02f4d81b8f4a982748 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// SSE
// RUN: %clang_cc1  \
// RUN: -triple i386-pc-windows -target-cpu pentium4 -target-feature +sse \
// RUN: -emit-llvm -o - %s | FileCheck -check-prefix=CHECK %s

// NO SSE
// RUN: %clang_cc1  \
// RUN: -triple i386-pc-windows -target-cpu pentium4 -target-feature -sse \
// RUN: -emit-llvm -o - %s | FileCheck -check-prefix=CHECK %s

// NO SSE Fast Math
// RUN: %clang_cc1  \
// RUN: -triple i386-pc-windows -target-cpu pentium4 -target-feature -sse \
// RUN: -ffast-math -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-FM %s

float addit(float a, float b, float c) {
  // CHECK: load float, ptr
  // CHECK: load float, ptr
  // CHECK: fadd float
  // CHECK: load float, ptr
  // CHECK: fadd float

  // CHECK-FM: load float, ptr
  // CHECK-FM: load float, ptr
  // CHECK-FM: fadd reassoc nnan ninf nsz arcp afn float
  // CHECK-FM: load float, ptr
  // CHECK-FM: fadd reassoc nnan ninf nsz arcp afn float

  return a + b + c;
}