182 lines · plain
1; RUN: llc < %s -O2 -mtriple=powerpc-linux-musl | FileCheck %s2; RUN: llc < %s -O2 -mtriple=powerpc64-linux-musl | FileCheck %s3; RUN: llc < %s -O2 -mtriple=powerpc64le-linux-musl | FileCheck %s4 5define fp128 @addkf3(fp128 %a, fp128 %b) {6; CHECK-LABEL: addkf3:7; CHECK: __addkf38 %1 = fadd fp128 %a, %b9 ret fp128 %110}11 12define fp128 @subkf3(fp128 %a, fp128 %b) {13; CHECK-LABEL: subkf3:14; CHECK: __subkf315 %1 = fsub fp128 %a, %b16 ret fp128 %117}18 19define fp128 @mulkf3(fp128 %a, fp128 %b) {20; CHECK-LABEL: mulkf3:21; CHECK: __mulkf322 %1 = fmul fp128 %a, %b23 ret fp128 %124}25 26define fp128 @divkf3(fp128 %a, fp128 %b) {27; CHECK-LABEL: divkf3:28; CHECK: __divkf329 %1 = fdiv fp128 %a, %b30 ret fp128 %131}32 33 34define fp128 @extendsfkf2_f16(half %a) {35; CHECK-LABEL: extendsfkf2_f16:36; CHECK: __extendsfkf237entry:38 %i = fpext half %a to fp12839 ret fp128 %i40}41 42define fp128 @extendsfkf2(float %a) {43; CHECK-LABEL: extendsfkf2:44; CHECK: __extendsfkf245 %1 = fpext float %a to fp12846 ret fp128 %147}48 49define fp128 @extenddfkf2(double %a) {50; CHECK-LABEL: extenddfkf2:51; CHECK: __extenddfkf252 %1 = fpext double %a to fp12853 ret fp128 %154}55 56define half @trunctfhf2(fp128 %a) {57; CHECK-LABEL: trunctfhf2:58; CHECK: __trunckfhf259entry:60 %i = fptrunc fp128 %a to half61 ret half %i62}63 64define float @trunckfsf2(fp128 %a) {65; CHECK-LABEL: trunckfsf2:66; CHECK: __trunckfsf267 %1 = fptrunc fp128 %a to float68 ret float %169}70 71define double @trunckfdf2(fp128 %a) {72; CHECK-LABEL: trunckfdf2:73; CHECK: __trunckfdf274 %1 = fptrunc fp128 %a to double75 ret double %176}77 78define i32 @fixkfsi(fp128 %a) {79; CHECK-LABEL: fixkfsi:80; CHECK: __fixkfsi81 %1 = fptosi fp128 %a to i3282 ret i32 %183}84 85define i64 @fixkfdi(fp128 %a) {86; CHECK-LABEL: fixkfdi:87; CHECK: __fixkfdi88 %1 = fptosi fp128 %a to i6489 ret i64 %190}91 92define i32 @fixunskfsi(fp128 %a) {93; CHECK-LABEL: fixunskfsi:94; CHECK: __fixunskfsi95 %1 = fptoui fp128 %a to i3296 ret i32 %197}98 99define i64 @fixunskfdi(fp128 %a) {100; CHECK-LABEL: fixunskfdi:101; CHECK: __fixunskfdi102 %1 = fptoui fp128 %a to i64103 ret i64 %1104}105 106define fp128 @floatsikf(i32 %a) {107; CHECK-LABEL: floatsikf:108; CHECK: __floatsikf109 %1 = sitofp i32 %a to fp128110 ret fp128 %1111}112 113define fp128 @floatdikf(i64 %a) {114; CHECK-LABEL: floatdikf:115; CHECK: __floatdikf116 %1 = sitofp i64 %a to fp128117 ret fp128 %1118}119 120define fp128 @floatunsikf(i32 %a) {121; CHECK-LABEL: floatunsikf:122; CHECK: __floatunsikf123 %1 = uitofp i32 %a to fp128124 ret fp128 %1125}126 127define fp128 @floatundikf(i64 %a) {128; CHECK-LABEL: floatundikf:129; CHECK: __floatundikf130 %1 = uitofp i64 %a to fp128131 ret fp128 %1132}133 134define i1 @test_eqkf2(fp128 %a, fp128 %b) {135; CHECK-LABEL: test_eqkf2:136; CHECK: __eqkf2137 %1 = fcmp oeq fp128 %a, %b138 ret i1 %1139}140 141define i1 @test_nekf2(fp128 %a, fp128 %b) {142; CHECK-LABEL: test_nekf2:143; CHECK: __nekf2144 %1 = fcmp une fp128 %a, %b145 ret i1 %1146}147 148define i1 @test_gekf2(fp128 %a, fp128 %b) {149; CHECK-LABEL: test_gekf2:150; CHECK: __gekf2151 %1 = fcmp oge fp128 %a, %b152 ret i1 %1153}154 155define i1 @test_ltkf2(fp128 %a, fp128 %b) {156; CHECK-LABEL: test_ltkf2:157; CHECK: __ltkf2158 %1 = fcmp olt fp128 %a, %b159 ret i1 %1160}161 162define i1 @test_lekf2(fp128 %a, fp128 %b) {163; CHECK-LABEL: test_lekf2:164; CHECK: __lekf2165 %1 = fcmp ole fp128 %a, %b166 ret i1 %1167}168 169define i1 @test_gtkf2(fp128 %a, fp128 %b) {170; CHECK-LABEL: test_gtkf2:171; CHECK: __gtkf2172 %1 = fcmp ogt fp128 %a, %b173 ret i1 %1174}175 176define i1 @test_unordkf2(fp128 %a, fp128 %b) {177; CHECK-LABEL: test_unordkf2:178; CHECK: __unordkf2179 %1 = fcmp uno fp128 %a, %b180 ret i1 %1181}182