Chad Rosier | bd64d46 | 2014-10-09 20:06:29 +0000 | [diff] [blame] | 1 | ; RUN: opt -reassociate -S < %s | FileCheck %s |
| 2 | ; PR21205 |
| 3 | |
| 4 | @a = common global i32 0, align 4 |
| 5 | @b = common global i32 0, align 4 |
| 6 | |
| 7 | ; Don't canonicalize %conv - undef into %conv + (-undef). |
| 8 | ; CHECK-LABEL: @test1 |
| 9 | ; CHECK: %sub = fsub fast float %conv, undef |
| 10 | ; CHECK: %sub1 = fadd fast float %sub, -1.000000e+00 |
| 11 | |
| 12 | define i32 @test1() { |
| 13 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 14 | %0 = load i32, i32* @a, align 4 |
Chad Rosier | bd64d46 | 2014-10-09 20:06:29 +0000 | [diff] [blame] | 15 | %conv = sitofp i32 %0 to float |
| 16 | %sub = fsub fast float %conv, undef |
| 17 | %sub1 = fadd fast float %sub, -1.000000e+00 |
| 18 | %conv2 = fptosi float %sub1 to i32 |
| 19 | store i32 %conv2, i32* @b, align 4 |
| 20 | ret i32 undef |
| 21 | } |