Owen Anderson | 630077e | 2015-11-20 08:16:13 +0000 | [diff] [blame] | 1 | ; RUN: opt -S -reassociate < %s | FileCheck %s |
| 2 | |
| 3 | define void @test1() { |
Sanjay Patel | b5d2e11 | 2017-11-09 22:41:39 +0000 | [diff] [blame] | 4 | ; CHECK-LABEL: @test1( |
| 5 | ; CHECK-NEXT: [[T1:%.*]] = tail call <4 x float> @blam() |
| 6 | ; CHECK-NEXT: [[T1_NEG:%.*]] = fsub fast <4 x float> <float -0.000000e+00, float -0.000000e+00, float -0.000000e+00, float -0.000000e+00>, [[T1]] |
| 7 | ; CHECK-NEXT: [[T24:%.*]] = fadd fast <4 x float> [[T1_NEG]], fadd (<4 x float> undef, <4 x float> undef) |
| 8 | ; CHECK-NEXT: tail call void @wombat(<4 x float> [[T24]]) |
| 9 | ; CHECK-NEXT: ret void |
| 10 | ; |
| 11 | %t1 = tail call <4 x float> @blam() |
| 12 | %t23 = fsub fast <4 x float> undef, %t1 |
| 13 | %t24 = fadd fast <4 x float> %t23, undef |
| 14 | tail call void @wombat(<4 x float> %t24) |
Owen Anderson | 630077e | 2015-11-20 08:16:13 +0000 | [diff] [blame] | 15 | ret void |
| 16 | } |
| 17 | |
Owen Anderson | 8e85130 | 2015-11-20 22:34:48 +0000 | [diff] [blame] | 18 | define half @test2() { |
Sanjay Patel | b5d2e11 | 2017-11-09 22:41:39 +0000 | [diff] [blame] | 19 | ; CHECK-LABEL: @test2( |
| 20 | ; CHECK-NEXT: [[T15:%.*]] = fsub fast half undef, undef |
| 21 | ; CHECK-NEXT: [[T15_NEG:%.*]] = fsub fast half 0xH8000, [[T15]] |
| 22 | ; CHECK-NEXT: [[T18:%.*]] = fadd fast half [[T15_NEG]], fadd (half undef, half undef) |
| 23 | ; CHECK-NEXT: ret half [[T18]] |
| 24 | ; |
| 25 | %t15 = fsub fast half undef, undef |
| 26 | %t17 = fsub fast half undef, %t15 |
| 27 | %t18 = fadd fast half undef, %t17 |
| 28 | ret half %t18 |
Owen Anderson | 8e85130 | 2015-11-20 22:34:48 +0000 | [diff] [blame] | 29 | } |
| 30 | |
| 31 | |
| 32 | |
Owen Anderson | 630077e | 2015-11-20 08:16:13 +0000 | [diff] [blame] | 33 | ; Function Attrs: optsize |
| 34 | declare <4 x float> @blam() |
| 35 | |
| 36 | ; Function Attrs: optsize |
| 37 | declare void @wombat(<4 x float>) |
| 38 | |