brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 0052359 Raw
136 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=x86_64-apple-macosx10.10.0 < %s | FileCheck %s3 4target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"5 6; The assertions are *enhanced* from update_test_checks.ll to include7; the constant load values because those are important.8 9; CHECK:        [[SIGNMASK1:L.+]]:10; CHECK-NEXT:   .quad 0x8000000000000000    ## double -011; CHECK-NEXT:   .quad 0x8000000000000000    ## double -012 13define double @mag_pos0_double(double %x) nounwind {14; CHECK-LABEL: mag_pos0_double:15; CHECK:       ## %bb.0:16; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm017; CHECK-NEXT:    retq18  %y = call double @copysign(double 0.0, double %x)19  ret double %y20}21 22; CHECK:        [[SIGNMASK2:L.+]]:23; CHECK-NEXT:   .quad 0x8000000000000000    ## double -024 25define double @mag_neg0_double(double %x) nounwind {26; CHECK-LABEL: mag_neg0_double:27; CHECK:       ## %bb.0:28; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm029; CHECK-NEXT:    retq30  %y = call double @copysign(double -0.0, double %x)31  ret double %y32}33 34; CHECK:        [[SIGNMASK3:L.+]]:35; CHECK-NEXT:   .quad 0x8000000000000000    ## double -036; CHECK-NEXT:   .quad 0x8000000000000000    ## double -037; CHECK:        [[ONE3:L.+]]:38; CHECK-NEXT:   .quad 0x3ff0000000000000     ## double 139 40define double @mag_pos1_double(double %x) nounwind {41; CHECK-LABEL: mag_pos1_double:42; CHECK:       ## %bb.0:43; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm044; CHECK-NEXT:    orps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm045; CHECK-NEXT:    retq46  %y = call double @copysign(double 1.0, double %x)47  ret double %y48}49 50; CHECK:        [[SIGNMASK4:L.+]]:51; CHECK-NEXT:   .quad 0x8000000000000000    ## double -052; CHECK-NEXT:   .quad 0x8000000000000000    ## double -053; CHECK:        [[ONE4:L.+]]:54; CHECK-NEXT:   .quad 0x3ff0000000000000     ## double 155; CHECK-NEXT:   .quad 0x3ff0000000000000     ## double 156 57define double @mag_neg1_double(double %x) nounwind {58; CHECK-LABEL: mag_neg1_double:59; CHECK:       ## %bb.0:60; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm061; CHECK-NEXT:    orps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm062; CHECK-NEXT:    retq63  %y = call double @copysign(double -1.0, double %x)64  ret double %y65}66 67; CHECK:       [[SIGNMASK5:L.+]]:68; CHECK-NEXT:  .long 0x80000000              ## float -069; CHECK-NEXT:  .long 0x80000000              ## float -070; CHECK-NEXT:  .long 0x80000000              ## float -071; CHECK-NEXT:  .long 0x80000000              ## float -072 73define float @mag_pos0_float(float %x) nounwind {74; CHECK-LABEL: mag_pos0_float:75; CHECK:       ## %bb.0:76; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm077; CHECK-NEXT:    retq78  %y = call float @copysignf(float 0.0, float %x)79  ret float %y80}81 82; CHECK:       [[SIGNMASK6:L.+]]:83; CHECK-NEXT:  .long 0x80000000              ## float -084 85define float @mag_neg0_float(float %x) nounwind {86; CHECK-LABEL: mag_neg0_float:87; CHECK:       ## %bb.0:88; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm089; CHECK-NEXT:    retq90  %y = call float @copysignf(float -0.0, float %x)91  ret float %y92}93 94; CHECK:       [[SIGNMASK7:L.+]]:95; CHECK-NEXT:  .long 0x80000000              ## float -096; CHECK-NEXT:  .long 0x80000000              ## float -097; CHECK-NEXT:  .long 0x80000000              ## float -098; CHECK-NEXT:  .long 0x80000000              ## float -099; CHECK:        [[ONE7:L.+]]:100; CHECK-NEXT:  .long 0x3f800000              ## float 1101 102define float @mag_pos1_float(float %x) nounwind {103; CHECK-LABEL: mag_pos1_float:104; CHECK:       ## %bb.0:105; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0106; CHECK-NEXT:    orps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0107; CHECK-NEXT:    retq108  %y = call float @copysignf(float 1.0, float %x)109  ret float %y110}111 112; CHECK:       [[SIGNMASK8:L.+]]:113; CHECK-NEXT:  .long 0x80000000              ## float -0114; CHECK-NEXT:  .long 0x80000000              ## float -0115; CHECK-NEXT:  .long 0x80000000              ## float -0116; CHECK-NEXT:  .long 0x80000000              ## float -0117; CHECK:        [[ONE8:L.+]]:118; CHECK-NEXT:  .long 0x3f800000              ## float 1119; CHECK-NEXT:  .long 0x3f800000              ## float 1120; CHECK-NEXT:  .long 0x3f800000              ## float 1121; CHECK-NEXT:  .long 0x3f800000              ## float 1122 123define float @mag_neg1_float(float %x) nounwind {124; CHECK-LABEL: mag_neg1_float:125; CHECK:       ## %bb.0:126; CHECK-NEXT:    andps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0127; CHECK-NEXT:    orps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0128; CHECK-NEXT:    retq129  %y = call float @copysignf(float -1.0, float %x)130  ret float %y131}132 133declare double @copysign(double, double) nounwind readnone134declare float @copysignf(float, float) nounwind readnone135 136