brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · 3e5aac9 Raw
283 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=sparc64 -mattr=+vis3 < %s | FileCheck %s3 4define float @fnadds(float %a, float %b) nounwind {5; CHECK-LABEL: fnadds:6; CHECK:       ! %bb.0: ! %entry7; CHECK-NEXT:    retl8; CHECK-NEXT:    fnadds %f1, %f3, %f09entry:10  %add = fadd float %a, %b11  %fneg = fneg float %add12  ret float %fneg13}14 15define double @fnaddd(double %a, double %b) nounwind {16; CHECK-LABEL: fnaddd:17; CHECK:       ! %bb.0: ! %entry18; CHECK-NEXT:    retl19; CHECK-NEXT:    fnaddd %f0, %f2, %f020entry:21  %add = fadd double %a, %b22  %fneg = fneg double %add23  ret double %fneg24}25 26define float @fnmuls(float %a, float %b) nounwind {27; CHECK-LABEL: fnmuls:28; CHECK:       ! %bb.0: ! %entry29; CHECK-NEXT:    retl30; CHECK-NEXT:    fnmuls %f1, %f3, %f031entry:32  %mul = fmul float %a, %b33  %fneg = fneg float %mul34  ret float %fneg35}36 37define double @fnmuld(double %a, double %b) nounwind {38; CHECK-LABEL: fnmuld:39; CHECK:       ! %bb.0: ! %entry40; CHECK-NEXT:    retl41; CHECK-NEXT:    fnmuld %f0, %f2, %f042entry:43  %mul = fmul double %a, %b44  %fneg = fneg double %mul45  ret double %fneg46}47 48define double @fnsmuld(float %a, float %b) nounwind {49; CHECK-LABEL: fnsmuld:50; CHECK:       ! %bb.0: ! %entry51; CHECK-NEXT:    retl52; CHECK-NEXT:    fnsmuld %f1, %f3, %f053entry:54  %da = fpext float %a to double55  %db = fpext float %b to double56  %mul = fmul double %da, %db57  %fneg = fneg double %mul58  ret double %fneg59}60 61 62define float @fhadds(float %a, float %b) nounwind {63; CHECK-LABEL: fhadds:64; CHECK:       ! %bb.0: ! %entry65; CHECK-NEXT:    retl66; CHECK-NEXT:    fhadds %f1, %f3, %f067entry:68  %add = fadd float %a, %b69  %div = fmul float %add, 5.000000e-0170  ret float %div71}72 73define double @fhaddd(double %a, double %b) nounwind {74; CHECK-LABEL: fhaddd:75; CHECK:       ! %bb.0: ! %entry76; CHECK-NEXT:    retl77; CHECK-NEXT:    fhaddd %f0, %f2, %f078entry:79  %add = fadd double %a, %b80  %div = fmul double %add, 5.000000e-0181  ret double %div82}83 84define float @fhsubs(float %a, float %b) nounwind {85; CHECK-LABEL: fhsubs:86; CHECK:       ! %bb.0: ! %entry87; CHECK-NEXT:    retl88; CHECK-NEXT:    fhsubs %f1, %f3, %f089entry:90  %sub = fsub float %a, %b91  %div = fmul float %sub, 5.000000e-0192  ret float %div93}94 95define double @fhsubd(double %a, double %b) nounwind {96; CHECK-LABEL: fhsubd:97; CHECK:       ! %bb.0: ! %entry98; CHECK-NEXT:    retl99; CHECK-NEXT:    fhsubd %f0, %f2, %f0100entry:101  %sub = fsub double %a, %b102  %div = fmul double %sub, 5.000000e-01103  ret double %div104}105 106define float @fnhadds(float %a, float %b) nounwind {107; CHECK-LABEL: fnhadds:108; CHECK:       ! %bb.0: ! %entry109; CHECK-NEXT:    retl110; CHECK-NEXT:    fnhadds %f1, %f3, %f0111entry:112  %add.i = fadd float %a, %b113  %fneg = fmul float %add.i, -5.000000e-01114  ret float %fneg115}116 117define double @fnhaddd(double %a, double %b) nounwind {118; CHECK-LABEL: fnhaddd:119; CHECK:       ! %bb.0: ! %entry120; CHECK-NEXT:    retl121; CHECK-NEXT:    fnhaddd %f0, %f2, %f0122entry:123  %add.i = fadd double %a, %b124  %fneg = fmul double %add.i, -5.000000e-01125  ret double %fneg126}127 128define <4 x float> @vec_fnadds(<4 x float> %a, <4 x float> %b) nounwind {129; CHECK-LABEL: vec_fnadds:130; CHECK:       ! %bb.0: ! %entry131; CHECK-NEXT:    fnadds %f1, %f9, %f0132; CHECK-NEXT:    fnadds %f3, %f11, %f1133; CHECK-NEXT:    fnadds %f5, %f13, %f2134; CHECK-NEXT:    retl135; CHECK-NEXT:    fnadds %f7, %f15, %f3136entry:137  %add = fadd <4 x float> %a, %b138  %fneg = fneg <4 x float> %add139  ret <4 x float> %fneg140}141 142define <4 x double> @vec_fnaddd(<4 x double> %a, <4 x double> %b) nounwind {143; CHECK-LABEL: vec_fnaddd:144; CHECK:       ! %bb.0: ! %entry145; CHECK-NEXT:    fnaddd %f0, %f8, %f0146; CHECK-NEXT:    fnaddd %f2, %f10, %f2147; CHECK-NEXT:    fnaddd %f4, %f12, %f4148; CHECK-NEXT:    retl149; CHECK-NEXT:    fnaddd %f6, %f14, %f6150entry:151  %add = fadd <4 x double> %a, %b152  %fneg = fneg <4 x double> %add153  ret <4 x double> %fneg154}155 156define <4 x float> @vec_fnmuls(<4 x float> %a, <4 x float> %b) nounwind {157; CHECK-LABEL: vec_fnmuls:158; CHECK:       ! %bb.0: ! %entry159; CHECK-NEXT:    fnmuls %f1, %f9, %f0160; CHECK-NEXT:    fnmuls %f3, %f11, %f1161; CHECK-NEXT:    fnmuls %f5, %f13, %f2162; CHECK-NEXT:    retl163; CHECK-NEXT:    fnmuls %f7, %f15, %f3164entry:165  %mul = fmul <4 x float> %a, %b166  %fneg = fneg <4 x float> %mul167  ret <4 x float> %fneg168}169 170define <4 x double> @vec_fnmuld(<4 x double> %a, <4 x double> %b) nounwind {171; CHECK-LABEL: vec_fnmuld:172; CHECK:       ! %bb.0: ! %entry173; CHECK-NEXT:    fnmuld %f0, %f8, %f0174; CHECK-NEXT:    fnmuld %f2, %f10, %f2175; CHECK-NEXT:    fnmuld %f4, %f12, %f4176; CHECK-NEXT:    retl177; CHECK-NEXT:    fnmuld %f6, %f14, %f6178entry:179  %mul = fmul <4 x double> %a, %b180  %fneg = fneg <4 x double> %mul181  ret <4 x double> %fneg182}183 184define <4 x double> @vec_fnsmuld(<4 x float> %a, <4 x float> %b) nounwind {185; CHECK-LABEL: vec_fnsmuld:186; CHECK:       ! %bb.0: ! %entry187; CHECK-NEXT:    fnsmuld %f1, %f9, %f0188; CHECK-NEXT:    fnsmuld %f3, %f11, %f2189; CHECK-NEXT:    fnsmuld %f5, %f13, %f4190; CHECK-NEXT:    retl191; CHECK-NEXT:    fnsmuld %f7, %f15, %f6192entry:193  %da = fpext <4 x float> %a to <4 x double>194  %db = fpext <4 x float> %b to <4 x double>195  %mul = fmul <4 x double> %da, %db196  %fneg = fneg <4 x double> %mul197  ret <4 x double> %fneg198}199 200define <4 x float> @vec_fhadds(<4 x float> %a, <4 x float> %b) nounwind {201; CHECK-LABEL: vec_fhadds:202; CHECK:       ! %bb.0: ! %entry203; CHECK-NEXT:    fhadds %f1, %f9, %f0204; CHECK-NEXT:    fhadds %f3, %f11, %f1205; CHECK-NEXT:    fhadds %f5, %f13, %f2206; CHECK-NEXT:    retl207; CHECK-NEXT:    fhadds %f7, %f15, %f3208entry:209  %add = fadd <4 x float> %a, %b210  %div = fmul <4 x float> %add, <float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01>211  ret <4 x float> %div212}213 214define <4 x double> @vec_fhaddd(<4 x double> %a, <4 x double> %b) nounwind {215; CHECK-LABEL: vec_fhaddd:216; CHECK:       ! %bb.0: ! %entry217; CHECK-NEXT:    fhaddd %f0, %f8, %f0218; CHECK-NEXT:    fhaddd %f2, %f10, %f2219; CHECK-NEXT:    fhaddd %f4, %f12, %f4220; CHECK-NEXT:    retl221; CHECK-NEXT:    fhaddd %f6, %f14, %f6222entry:223  %add = fadd <4 x double> %a, %b224  %div = fmul <4 x double> %add, <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>225  ret <4 x double> %div226}227 228define <4 x float> @vec_fhsubs(<4 x float> %a, <4 x float> %b) nounwind {229; CHECK-LABEL: vec_fhsubs:230; CHECK:       ! %bb.0: ! %entry231; CHECK-NEXT:    fhsubs %f1, %f9, %f0232; CHECK-NEXT:    fhsubs %f3, %f11, %f1233; CHECK-NEXT:    fhsubs %f5, %f13, %f2234; CHECK-NEXT:    retl235; CHECK-NEXT:    fhsubs %f7, %f15, %f3236entry:237  %sub = fsub <4 x float> %a, %b238  %div = fmul <4 x float> %sub, <float 5.000000e-01, float 5.000000e-01, float 5.000000e-01, float 5.000000e-01>239  ret <4 x float> %div240}241 242define <4 x double> @vec_fhsubd(<4 x double> %a, <4 x double> %b) nounwind {243; CHECK-LABEL: vec_fhsubd:244; CHECK:       ! %bb.0: ! %entry245; CHECK-NEXT:    fhsubd %f0, %f8, %f0246; CHECK-NEXT:    fhsubd %f2, %f10, %f2247; CHECK-NEXT:    fhsubd %f4, %f12, %f4248; CHECK-NEXT:    retl249; CHECK-NEXT:    fhsubd %f6, %f14, %f6250entry:251  %sub = fsub <4 x double> %a, %b252  %div = fmul <4 x double> %sub, <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>253  ret <4 x double> %div254}255 256define <4 x float> @vec_fnhadds(<4 x float> %a, <4 x float> %b) nounwind {257; CHECK-LABEL: vec_fnhadds:258; CHECK:       ! %bb.0: ! %entry259; CHECK-NEXT:    fnhadds %f1, %f9, %f0260; CHECK-NEXT:    fnhadds %f3, %f11, %f1261; CHECK-NEXT:    fnhadds %f5, %f13, %f2262; CHECK-NEXT:    retl263; CHECK-NEXT:    fnhadds %f7, %f15, %f3264entry:265  %add.i = fadd <4 x float> %a, %b266  %fneg = fmul <4 x float> %add.i, <float -5.000000e-01, float -5.000000e-01, float -5.000000e-01, float -5.000000e-01>267  ret <4 x float> %fneg268}269 270define <4 x double> @vec_fnhaddd(<4 x double> %a, <4 x double> %b) nounwind {271; CHECK-LABEL: vec_fnhaddd:272; CHECK:       ! %bb.0: ! %entry273; CHECK-NEXT:    fnhaddd %f0, %f8, %f0274; CHECK-NEXT:    fnhaddd %f2, %f10, %f2275; CHECK-NEXT:    fnhaddd %f4, %f12, %f4276; CHECK-NEXT:    retl277; CHECK-NEXT:    fnhaddd %f6, %f14, %f6278entry:279  %add.i = fadd <4 x double> %a, %b280  %fneg = fmul <4 x double> %add.i, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>281  ret <4 x double> %fneg282}283