~ubuntu-branches/ubuntu/quantal/llvm-3.1/quantal

« back to all changes in this revision

Viewing changes to test/Transforms/InstCombine/no-negzero.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2012-03-29 19:09:51 UTC
  • Revision ID: package-import@ubuntu.com-20120329190951-aq83ivog4cg8bxun
Tags: upstream-3.1~svn153643
ImportĀ upstreamĀ versionĀ 3.1~svn153643

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: opt < %s -instcombine -S | FileCheck %s
 
2
; ModuleID = '3555a.c'
 
3
; sqrt(fabs) cannot be negative zero, so we should eliminate the fadd.
 
4
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
 
5
target triple = "i386-apple-darwin9.8"
 
6
 
 
7
; CHECK: @mysqrt
 
8
; CHECK-NOT: fadd
 
9
; CHECK: ret
 
10
define double @mysqrt(double %x) nounwind {
 
11
entry:
 
12
  %x_addr = alloca double                         ; <double*> [#uses=2]
 
13
  %retval = alloca double, align 8                ; <double*> [#uses=2]
 
14
  %0 = alloca double, align 8                     ; <double*> [#uses=2]
 
15
  %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
 
16
  store double %x, double* %x_addr
 
17
  %1 = load double* %x_addr, align 8              ; <double> [#uses=1]
 
18
  %2 = call double @fabs(double %1) nounwind readnone ; <double> [#uses=1]
 
19
  %3 = call double @sqrt(double %2) nounwind readonly ; <double> [#uses=1]
 
20
  %4 = fadd double %3, 0.000000e+00               ; <double> [#uses=1]
 
21
  store double %4, double* %0, align 8
 
22
  %5 = load double* %0, align 8                   ; <double> [#uses=1]
 
23
  store double %5, double* %retval, align 8
 
24
  br label %return
 
25
 
 
26
return:                                           ; preds = %entry
 
27
  %retval1 = load double* %retval                 ; <double> [#uses=1]
 
28
  ret double %retval1
 
29
}
 
30
 
 
31
declare double @fabs(double)
 
32
 
 
33
declare double @sqrt(double) nounwind readonly