brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 2069faa Raw
75 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -passes=gvn -S < %s | FileCheck %s3 4define double @test1(double %x, double %y) {5; CHECK-LABEL: define double @test1(6; CHECK-SAME: double [[X:%.*]], double [[Y:%.*]]) {7; CHECK-NEXT:    [[ADD1:%.*]] = fadd double [[X]], [[Y]]8; CHECK-NEXT:    [[FOO:%.*]] = fadd double [[ADD1]], [[ADD1]]9; CHECK-NEXT:    ret double [[FOO]]10;11  %add1 = fadd double %x, %y, !fpmath !012  %add2 = fadd double %x, %y13  %foo = fadd double %add1, %add214  ret double %foo15}16 17define double @test2(double %x, double %y) {18; CHECK-LABEL: define double @test2(19; CHECK-SAME: double [[X:%.*]], double [[Y:%.*]]) {20; CHECK-NEXT:    [[ADD1:%.*]] = fadd double [[X]], [[Y]], !fpmath [[META0:![0-9]+]]21; CHECK-NEXT:    [[FOO:%.*]] = fadd double [[ADD1]], [[ADD1]]22; CHECK-NEXT:    ret double [[FOO]]23;24  %add1 = fadd double %x, %y, !fpmath !025  %add2 = fadd double %x, %y, !fpmath !026  %foo = fadd double %add1, %add227  ret double %foo28}29 30define double @test3(double %x, double %y) {31; CHECK-LABEL: define double @test3(32; CHECK-SAME: double [[X:%.*]], double [[Y:%.*]]) {33; CHECK-NEXT:    [[ADD1:%.*]] = fadd double [[X]], [[Y]], !fpmath [[META1:![0-9]+]]34; CHECK-NEXT:    [[FOO:%.*]] = fadd double [[ADD1]], [[ADD1]]35; CHECK-NEXT:    ret double [[FOO]]36;37  %add1 = fadd double %x, %y, !fpmath !138  %add2 = fadd double %x, %y, !fpmath !039  %foo = fadd double %add1, %add240  ret double %foo41}42 43define double @test4(double %x, double %y) {44; CHECK-LABEL: define double @test4(45; CHECK-SAME: double [[X:%.*]], double [[Y:%.*]]) {46; CHECK-NEXT:    [[ADD1:%.*]] = fadd double [[X]], [[Y]], !fpmath [[META1]]47; CHECK-NEXT:    [[FOO:%.*]] = fadd double [[ADD1]], [[ADD1]]48; CHECK-NEXT:    ret double [[FOO]]49;50  %add1 = fadd double %x, %y, !fpmath !051  %add2 = fadd double %x, %y, !fpmath !152  %foo = fadd double %add1, %add253  ret double %foo54}55 56define double @test5(double %x, double %y) {57; CHECK-LABEL: define double @test5(58; CHECK-SAME: double [[X:%.*]], double [[Y:%.*]]) {59; CHECK-NEXT:    [[NEG1:%.*]] = fneg double [[X]], !fpmath [[META1]]60; CHECK-NEXT:    [[FOO:%.*]] = fadd double [[NEG1]], [[NEG1]]61; CHECK-NEXT:    ret double [[FOO]]62;63  %neg1 = fneg double %x, !fpmath !064  %neg2 = fneg double %x, !fpmath !165  %foo = fadd double %neg1, %neg266  ret double %foo67}68 69!0 = !{ float 5.0 }70!1 = !{ float 2.5 }71;.72; CHECK: [[META0]] = !{float 5.000000e+00}73; CHECK: [[META1]] = !{float 2.500000e+00}74;.75