86 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-- < %s | FileCheck %s3 4define float @f32_tune_nhm(float %f) #0 {5; CHECK-LABEL: f32_tune_nhm:6; CHECK: # %bb.0:7; CHECK-NEXT: rsqrtss %xmm0, %xmm18; CHECK-NEXT: movaps %xmm0, %xmm29; CHECK-NEXT: mulss %xmm1, %xmm210; CHECK-NEXT: movss {{.*#+}} xmm3 = [-5.0E-1,0.0E+0,0.0E+0,0.0E+0]11; CHECK-NEXT: mulss %xmm2, %xmm312; CHECK-NEXT: mulss %xmm1, %xmm213; CHECK-NEXT: addss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm214; CHECK-NEXT: mulss %xmm3, %xmm215; CHECK-NEXT: andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm016; CHECK-NEXT: cmpltss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm017; CHECK-NEXT: andnps %xmm2, %xmm018; CHECK-NEXT: retq19 %call = tail call fast float @llvm.sqrt.f32(float %f)20 ret float %call21}22 23define float @f32_no_tune(float %f) #1 {24; CHECK-LABEL: f32_no_tune:25; CHECK: # %bb.0:26; CHECK-NEXT: sqrtss %xmm0, %xmm027; CHECK-NEXT: retq28 %call = tail call fast float @llvm.sqrt.f32(float %f)29 ret float %call30}31 32define float @f32_tune_generic(float %f) #2 {33; CHECK-LABEL: f32_tune_generic:34; CHECK: # %bb.0:35; CHECK-NEXT: sqrtss %xmm0, %xmm036; CHECK-NEXT: retq37 %call = tail call fast float @llvm.sqrt.f32(float %f)38 ret float %call39}40 41define float @f32_tune_x86_64(float %f) #3 {42; CHECK-LABEL: f32_tune_x86_64:43; CHECK: # %bb.0:44; CHECK-NEXT: rsqrtss %xmm0, %xmm145; CHECK-NEXT: movaps %xmm0, %xmm246; CHECK-NEXT: mulss %xmm1, %xmm247; CHECK-NEXT: movss {{.*#+}} xmm3 = [-5.0E-1,0.0E+0,0.0E+0,0.0E+0]48; CHECK-NEXT: mulss %xmm2, %xmm349; CHECK-NEXT: mulss %xmm1, %xmm250; CHECK-NEXT: addss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm251; CHECK-NEXT: mulss %xmm3, %xmm252; CHECK-NEXT: andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm053; CHECK-NEXT: cmpltss {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm054; CHECK-NEXT: andnps %xmm2, %xmm055; CHECK-NEXT: retq56 %call = tail call fast float @llvm.sqrt.f32(float %f)57 ret float %call58}59 60define float @f32_tune_snb(float %f) #4 {61; CHECK-LABEL: f32_tune_snb:62; CHECK: # %bb.0:63; CHECK-NEXT: sqrtss %xmm0, %xmm064; CHECK-NEXT: retq65 %call = tail call fast float @llvm.sqrt.f32(float %f)66 ret float %call67}68 69define float @f32_target_snb_tune_snb(float %f) #5 {70; CHECK-LABEL: f32_target_snb_tune_snb:71; CHECK: # %bb.0:72; CHECK-NEXT: vsqrtss %xmm0, %xmm0, %xmm073; CHECK-NEXT: retq74 %call = tail call fast float @llvm.sqrt.f32(float %f)75 ret float %call76}77 78declare float @llvm.sqrt.f32(float)79 80attributes #0 = { "target-cpu"="x86-64" "tune-cpu"="nehalem" }81attributes #1 = { "target-cpu"="x86-64" }82attributes #2 = { "target-cpu"="x86-64" "tune-cpu"="generic" }83attributes #3 = { "target-cpu"="x86-64" "tune-cpu"="x86-64" }84attributes #4 = { "target-cpu"="x86-64" "tune-cpu"="sandybridge" }85attributes #5 = { "target-cpu"="sandybridge" "tune-cpu"="sandybridge" }86