brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.1 KiB · b86894c Raw
269 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s3 4define float @fadd_zero_strict(float %x) {5; CHECK-LABEL: fadd_zero_strict:6; CHECK:       # %bb.0:7; CHECK-NEXT:    xorps %xmm1, %xmm18; CHECK-NEXT:    addss %xmm1, %xmm09; CHECK-NEXT:    retq10  %r = fadd float %x, 0.011  ret float %r12}13 14define float @fadd_negzero(float %x) {15; CHECK-LABEL: fadd_negzero:16; CHECK:       # %bb.0:17; CHECK-NEXT:    retq18  %r = fadd float %x, -0.019  ret float %r20}21 22define float @fadd_produce_zero(float %x) {23; CHECK-LABEL: fadd_produce_zero:24; CHECK:       # %bb.0:25; CHECK-NEXT:    xorps %xmm0, %xmm026; CHECK-NEXT:    retq27  %neg = fsub nsz float 0.0, %x28  %r = fadd nnan float %neg, %x29  ret float %r30}31 32define float @fadd_reassociate(float %x) {33; CHECK-LABEL: fadd_reassociate:34; CHECK:       # %bb.0:35; CHECK-NEXT:    addss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm036; CHECK-NEXT:    retq37  %sum = fadd float %x, 8.038  %r = fadd reassoc nsz float %sum, 12.039  ret float %r40}41 42define float @fadd_negzero_nsz(float %x) {43; CHECK-LABEL: fadd_negzero_nsz:44; CHECK:       # %bb.0:45; CHECK-NEXT:    retq46  %r = fadd nsz float %x, -0.047  ret float %r48}49 50define float @fadd_zero_nsz(float %x) {51; CHECK-LABEL: fadd_zero_nsz:52; CHECK:       # %bb.0:53; CHECK-NEXT:    retq54  %r = fadd nsz float %x, 0.055  ret float %r56}57 58define float @fsub_zero(float %x) {59; CHECK-LABEL: fsub_zero:60; CHECK:       # %bb.0:61; CHECK-NEXT:    retq62  %r = fsub float %x, 0.063  ret float %r64}65 66define float @fsub_self(float %x) {67; CHECK-LABEL: fsub_self:68; CHECK:       # %bb.0:69; CHECK-NEXT:    xorps %xmm0, %xmm070; CHECK-NEXT:    retq71  %r = fsub nnan float %x, %x72  ret float %r73}74 75define float @fsub_neg_x_y(float %x, float %y) {76; CHECK-LABEL: fsub_neg_x_y:77; CHECK:       # %bb.0:78; CHECK-NEXT:    subss %xmm0, %xmm179; CHECK-NEXT:    movaps %xmm1, %xmm080; CHECK-NEXT:    retq81  %neg = fsub nsz float 0.0, %x82  %r = fadd nsz float %neg, %y83  ret float %r84}85 86define float @fsub_neg_y(float %x, float %y) {87; CHECK-LABEL: fsub_neg_y:88; CHECK:       # %bb.0:89; CHECK-NEXT:    mulss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm090; CHECK-NEXT:    retq91  %mul = fmul float %x, 5.092  %add = fadd float %mul, %y93  %r = fsub nsz reassoc float %y, %add94  ret float %r95}96 97define <4 x float> @fsub_neg_y_vector(<4 x float> %x, <4 x float> %y) {98; CHECK-LABEL: fsub_neg_y_vector:99; CHECK:       # %bb.0:100; CHECK-NEXT:    mulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0101; CHECK-NEXT:    retq102  %mul = fmul <4 x float> %x, <float 5.0, float 5.0, float 5.0, float 5.0>103  %add = fadd <4 x float> %mul, %y104  %r = fsub nsz reassoc <4 x float> %y, %add105  ret <4 x float> %r106}107 108define <4 x float> @fsub_neg_y_vector_nonuniform(<4 x float> %x, <4 x float> %y) {109; CHECK-LABEL: fsub_neg_y_vector_nonuniform:110; CHECK:       # %bb.0:111; CHECK-NEXT:    mulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0112; CHECK-NEXT:    retq113  %mul = fmul <4 x float> %x, <float 5.0, float 6.0, float 7.0, float 8.0>114  %add = fadd <4 x float> %mul, %y115  %r = fsub nsz reassoc <4 x float> %y, %add116  ret <4 x float> %r117}118 119define float @fsub_neg_y_commute(float %x, float %y) {120; CHECK-LABEL: fsub_neg_y_commute:121; CHECK:       # %bb.0:122; CHECK-NEXT:    mulss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0123; CHECK-NEXT:    retq124  %mul = fmul float %x, 5.0125  %add = fadd float %y, %mul126  %r = fsub nsz reassoc float %y, %add127  ret float %r128}129 130define <4 x float> @fsub_neg_y_commute_vector(<4 x float> %x, <4 x float> %y) {131; CHECK-LABEL: fsub_neg_y_commute_vector:132; CHECK:       # %bb.0:133; CHECK-NEXT:    mulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0134; CHECK-NEXT:    retq135  %mul = fmul <4 x float> %x, <float 5.0, float 5.0, float 5.0, float 5.0>136  %add = fadd <4 x float> %y, %mul137  %r = fsub nsz reassoc <4 x float> %y, %add138  ret <4 x float> %r139}140 141; Y - (X + Y) --> -X142 143define float @fsub_fadd_common_op_fneg(float %x, float %y) {144; CHECK-LABEL: fsub_fadd_common_op_fneg:145; CHECK:       # %bb.0:146; CHECK-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0147; CHECK-NEXT:    retq148  %a = fadd float %x, %y149  %r = fsub reassoc nsz float %y, %a150  ret float %r151}152 153; Y - (X + Y) --> -X154 155define <4 x float> @fsub_fadd_common_op_fneg_vec(<4 x float> %x, <4 x float> %y) {156; CHECK-LABEL: fsub_fadd_common_op_fneg_vec:157; CHECK:       # %bb.0:158; CHECK-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0159; CHECK-NEXT:    retq160  %a = fadd <4 x float> %x, %y161  %r = fsub nsz reassoc <4 x float> %y, %a162  ret <4 x float> %r163}164 165; Y - (Y + X) --> -X166; Commute operands of the 'add'.167 168define float @fsub_fadd_common_op_fneg_commute(float %x, float %y) {169; CHECK-LABEL: fsub_fadd_common_op_fneg_commute:170; CHECK:       # %bb.0:171; CHECK-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0172; CHECK-NEXT:    retq173  %a = fadd float %y, %x174  %r = fsub reassoc nsz float %y, %a175  ret float %r176}177 178; Y - (Y + X) --> -X179 180define <4 x float> @fsub_fadd_common_op_fneg_commute_vec(<4 x float> %x, <4 x float> %y) {181; CHECK-LABEL: fsub_fadd_common_op_fneg_commute_vec:182; CHECK:       # %bb.0:183; CHECK-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0184; CHECK-NEXT:    retq185  %a = fadd <4 x float> %y, %x186  %r = fsub reassoc nsz <4 x float> %y, %a187  ret <4 x float> %r188}189 190define float @fsub_negzero_strict(float %x) {191; CHECK-LABEL: fsub_negzero_strict:192; CHECK:       # %bb.0:193; CHECK-NEXT:    xorps %xmm1, %xmm1194; CHECK-NEXT:    addss %xmm1, %xmm0195; CHECK-NEXT:    retq196  %r = fsub float %x, -0.0197  ret float %r198}199 200define float @fsub_negzero_nsz(float %x) {201; CHECK-LABEL: fsub_negzero_nsz:202; CHECK:       # %bb.0:203; CHECK-NEXT:    retq204  %r = fsub nsz float %x, -0.0205  ret float %r206}207 208define <4 x float> @fsub_negzero_strict_vector(<4 x float> %x) {209; CHECK-LABEL: fsub_negzero_strict_vector:210; CHECK:       # %bb.0:211; CHECK-NEXT:    xorps %xmm1, %xmm1212; CHECK-NEXT:    addps %xmm1, %xmm0213; CHECK-NEXT:    retq214  %r = fsub <4 x float> %x, <float -0.0, float -0.0, float -0.0, float -0.0>215  ret <4 x float> %r216}217 218define <4 x float> @fsub_negzero_nsz_vector(<4 x float> %x) {219; CHECK-LABEL: fsub_negzero_nsz_vector:220; CHECK:       # %bb.0:221; CHECK-NEXT:    retq222  %r = fsub nsz <4 x float> %x, <float -0.0, float -0.0, float -0.0, float -0.0>223  ret <4 x float> %r224}225 226define float @fsub_zero_nsz_1(float %x) {227; CHECK-LABEL: fsub_zero_nsz_1:228; CHECK:       # %bb.0:229; CHECK-NEXT:    retq230  %r = fsub nsz float %x, 0.0231  ret float %r232}233 234define float @fsub_zero_nsz_2(float %x) {235; CHECK-LABEL: fsub_zero_nsz_2:236; CHECK:       # %bb.0:237; CHECK-NEXT:    xorps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0238; CHECK-NEXT:    retq239  %r = fsub nsz float 0.0, %x240  ret float %r241}242 243define float @fmul_zero(float %x) {244; CHECK-LABEL: fmul_zero:245; CHECK:       # %bb.0:246; CHECK-NEXT:    xorps %xmm0, %xmm0247; CHECK-NEXT:    retq248  %r = fmul nnan nsz float %x, 0.0249  ret float %r250}251 252define float @fmul_one(float %x) {253; CHECK-LABEL: fmul_one:254; CHECK:       # %bb.0:255; CHECK-NEXT:    retq256  %r = fmul float %x, 1.0257  ret float %r258}259 260define float @fmul_x_const_const(float %x) {261; CHECK-LABEL: fmul_x_const_const:262; CHECK:       # %bb.0:263; CHECK-NEXT:    mulss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0264; CHECK-NEXT:    retq265  %mul = fmul reassoc float %x, 9.0266  %r = fmul reassoc float %mul, 4.0267  ret float %r268}269