brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.4 KiB · cd94d32 Raw
225 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=hexagon < %s | FileCheck %s3; RUN: llc -mtriple=hexagon-unknown-linux-gnu < %s | FileCheck %s4; RUN: llc -mtriple=hexagon-unknown-linux-musl < %s | FileCheck %s5 6define half @exp10_f16(half %x) #0 {7; CHECK-LABEL: exp10_f16:8; CHECK:       // %bb.0:9; CHECK-NEXT:    {10; CHECK-NEXT:     call __extendhfsf211; CHECK-NEXT:     allocframe(r29,#0):raw12; CHECK-NEXT:    }13; CHECK-NEXT:    {14; CHECK-NEXT:     call exp10f15; CHECK-NEXT:    }16; CHECK-NEXT:    {17; CHECK-NEXT:     call __truncsfhf218; CHECK-NEXT:    }19; CHECK-NEXT:    {20; CHECK-NEXT:     r31:30 = dealloc_return(r30):raw21; CHECK-NEXT:    }22  %r = call half @llvm.exp10.f16(half %x)23  ret half %r24}25 26define <2 x half> @exp10_v2f16(<2 x half> %x) #0 {27; CHECK-LABEL: exp10_v2f16:28; CHECK:       // %bb.0:29; CHECK-NEXT:    {30; CHECK-NEXT:     call __extendhfsf231; CHECK-NEXT:     r16 = r132; CHECK-NEXT:     memd(r29+#-16) = r17:1633; CHECK-NEXT:     allocframe(#8)34; CHECK-NEXT:    } // 8-byte Folded Spill35; CHECK-NEXT:    {36; CHECK-NEXT:     call exp10f37; CHECK-NEXT:    }38; CHECK-NEXT:    {39; CHECK-NEXT:     call __truncsfhf240; CHECK-NEXT:    }41; CHECK-NEXT:    {42; CHECK-NEXT:     call __extendhfsf243; CHECK-NEXT:     r17 = r044; CHECK-NEXT:     r0 = r1645; CHECK-NEXT:    }46; CHECK-NEXT:    {47; CHECK-NEXT:     call exp10f48; CHECK-NEXT:    }49; CHECK-NEXT:    {50; CHECK-NEXT:     call __truncsfhf251; CHECK-NEXT:    }52; CHECK-NEXT:    {53; CHECK-NEXT:     r1 = zxth(r0)54; CHECK-NEXT:     r2 = zxth(r17)55; CHECK-NEXT:     r17:16 = memd(r29+#0)56; CHECK-NEXT:    } // 8-byte Folded Reload57; CHECK-NEXT:    {58; CHECK-NEXT:     r0 = r259; CHECK-NEXT:     dealloc_return60; CHECK-NEXT:    }61  %r = call <2 x half> @llvm.exp10.v2f16(<2 x half> %x)62  ret <2 x half> %r63}64 65define float @exp10_f32(float %x) #0 {66; CHECK-LABEL: exp10_f32:67; CHECK:       // %bb.0:68; CHECK-NEXT:    {69; CHECK-NEXT:     jump exp10f70; CHECK-NEXT:    }71  %r = call float @llvm.exp10.f32(float %x)72  ret float %r73}74 75define <2 x float> @exp10_v2f32(<2 x float> %x) #0 {76; CHECK-LABEL: exp10_v2f32:77; CHECK:       // %bb.0:78; CHECK-NEXT:    {79; CHECK-NEXT:     call exp10f80; CHECK-NEXT:     r16 = r181; CHECK-NEXT:     memd(r29+#-16) = r17:1682; CHECK-NEXT:     allocframe(#8)83; CHECK-NEXT:    } // 8-byte Folded Spill84; CHECK-NEXT:    {85; CHECK-NEXT:     call exp10f86; CHECK-NEXT:     r17 = r087; CHECK-NEXT:     r0 = r1688; CHECK-NEXT:    }89; CHECK-NEXT:    {90; CHECK-NEXT:     r1:0 = combine(r0,r17)91; CHECK-NEXT:     r17:16 = memd(r29+#0)92; CHECK-NEXT:     dealloc_return93; CHECK-NEXT:    } // 8-byte Folded Reload94  %r = call <2 x float> @llvm.exp10.v2f32(<2 x float> %x)95  ret <2 x float> %r96}97 98define double @exp10_f64(double %x) #0 {99; CHECK-LABEL: exp10_f64:100; CHECK:       // %bb.0:101; CHECK-NEXT:    {102; CHECK-NEXT:     jump exp10103; CHECK-NEXT:    }104  %r = call double @llvm.exp10.f64(double %x)105  ret double %r106}107 108define <2 x double> @exp10_v2f64(<2 x double> %x) #0 {109; CHECK-LABEL: exp10_v2f64:110; CHECK:       // %bb.0:111; CHECK-NEXT:    {112; CHECK-NEXT:     r16 = r0113; CHECK-NEXT:     r1:0 = combine(r3,r2)114; CHECK-NEXT:     memd(r29+#-16) = r17:16115; CHECK-NEXT:     allocframe(#24)116; CHECK-NEXT:    } // 8-byte Folded Spill117; CHECK-NEXT:    {118; CHECK-NEXT:     call exp10119; CHECK-NEXT:     r19:18 = combine(r5,r4)120; CHECK-NEXT:     memd(r29+#8) = r19:18121; CHECK-NEXT:     memd(r29+#0) = r21:20122; CHECK-NEXT:    } // 8-byte Folded Spill123; CHECK-NEXT:    {124; CHECK-NEXT:     call exp10125; CHECK-NEXT:     r21:20 = combine(r1,r0)126; CHECK-NEXT:     r1:0 = combine(r19,r18)127; CHECK-NEXT:    }128; CHECK-NEXT:    {129; CHECK-NEXT:     memd(r16+#8) = r1:0130; CHECK-NEXT:     memd(r16+#0) = r21:20131; CHECK-NEXT:    }132; CHECK-NEXT:    {133; CHECK-NEXT:     r17:16 = memd(r29+#16)134; CHECK-NEXT:     r19:18 = memd(r29+#8)135; CHECK-NEXT:    } // 8-byte Folded Reload136; CHECK-NEXT:    {137; CHECK-NEXT:     r21:20 = memd(r29+#0)138; CHECK-NEXT:     dealloc_return139; CHECK-NEXT:    } // 8-byte Folded Reload140  %r = call <2 x double> @llvm.exp10.v2f64(<2 x double> %x)141  ret <2 x double> %r142}143 144define fp128 @exp10_f128(fp128 %x) #0 {145; CHECK-LABEL: exp10_f128:146; CHECK:       // %bb.0:147; CHECK-NEXT:    {148; CHECK-NEXT:     r16 = r0149; CHECK-NEXT:     memd(r29+#-16) = r17:16150; CHECK-NEXT:     allocframe(#24)151; CHECK-NEXT:    } // 8-byte Folded Spill152; CHECK-NEXT:    {153; CHECK-NEXT:     call exp10l154; CHECK-NEXT:     r0 = add(r29,#0)155; CHECK-NEXT:    }156; CHECK-NEXT:    {157; CHECK-NEXT:     r1:0 = memd(r29+#0)158; CHECK-NEXT:     r3:2 = memd(r29+#8)159; CHECK-NEXT:    }160; CHECK-NEXT:    {161; CHECK-NEXT:     memd(r16+#8) = r3:2162; CHECK-NEXT:     memd(r16+#0) = r1:0163; CHECK-NEXT:    }164; CHECK-NEXT:    {165; CHECK-NEXT:     r17:16 = memd(r29+#16)166; CHECK-NEXT:     dealloc_return167; CHECK-NEXT:    } // 8-byte Folded Reload168  %r = call fp128 @llvm.exp10.f128(fp128 %x)169  ret fp128 %r170}171 172define <2 x fp128> @exp10_v2f128(<2 x fp128> %x) #0 {173; CHECK-LABEL: exp10_v2f128:174; CHECK:       // %bb.0:175; CHECK-NEXT:    {176; CHECK-NEXT:     r16 = r0177; CHECK-NEXT:     memd(r29+#-16) = r17:16178; CHECK-NEXT:     allocframe(#56)179; CHECK-NEXT:    } // 8-byte Folded Spill180; CHECK-NEXT:    {181; CHECK-NEXT:     r0 = add(r29,#16)182; CHECK-NEXT:     memd(r29+#40) = r19:18183; CHECK-NEXT:     memd(r29+#32) = r21:20184; CHECK-NEXT:    } // 8-byte Folded Spill185; CHECK-NEXT:    {186; CHECK-NEXT:     call exp10l187; CHECK-NEXT:     r19:18 = memd(r29+#64)188; CHECK-NEXT:     r21:20 = memd(r29+#72)189; CHECK-NEXT:    }190; CHECK-NEXT:    {191; CHECK-NEXT:     call exp10l192; CHECK-NEXT:     r0 = add(r29,#0)193; CHECK-NEXT:     r3:2 = combine(r19,r18)194; CHECK-NEXT:     r5:4 = combine(r21,r20)195; CHECK-NEXT:    }196; CHECK-NEXT:    {197; CHECK-NEXT:     r1:0 = memd(r29+#16)198; CHECK-NEXT:     r3:2 = memd(r29+#24)199; CHECK-NEXT:    }200; CHECK-NEXT:    {201; CHECK-NEXT:     r5:4 = memd(r29+#0)202; CHECK-NEXT:     r7:6 = memd(r29+#8)203; CHECK-NEXT:    }204; CHECK-NEXT:    {205; CHECK-NEXT:     memd(r16+#24) = r7:6206; CHECK-NEXT:     memd(r16+#16) = r5:4207; CHECK-NEXT:    }208; CHECK-NEXT:    {209; CHECK-NEXT:     memd(r16+#8) = r3:2210; CHECK-NEXT:     memd(r16+#0) = r1:0211; CHECK-NEXT:    }212; CHECK-NEXT:    {213; CHECK-NEXT:     r17:16 = memd(r29+#48)214; CHECK-NEXT:     r19:18 = memd(r29+#40)215; CHECK-NEXT:    } // 8-byte Folded Reload216; CHECK-NEXT:    {217; CHECK-NEXT:     r21:20 = memd(r29+#32)218; CHECK-NEXT:     dealloc_return219; CHECK-NEXT:    } // 8-byte Folded Reload220  %r = call <2 x fp128> @llvm.exp10.v2f128(<2 x fp128> %x)221  ret <2 x fp128> %r222}223 224attributes #0 = { nounwind }225