1; RUN: llc < %s -O2 -mtriple=powerpc-linux-musl | FileCheck %s 2; RUN: llc < %s -O2 -mtriple=powerpc64-linux-musl | FileCheck %s 3; RUN: llc < %s -O2 -mtriple=powerpc64le-linux-musl | FileCheck %s 4 5define fp128 @addkf3(fp128 %a, fp128 %b) { 6; CHECK-LABEL: addkf3: 7; CHECK: __addkf3 8 %1 = fadd fp128 %a, %b 9 ret fp128 %1 10} 11 12define fp128 @subkf3(fp128 %a, fp128 %b) { 13; CHECK-LABEL: subkf3: 14; CHECK: __subkf3 15 %1 = fsub fp128 %a, %b 16 ret fp128 %1 17} 18 19define fp128 @mulkf3(fp128 %a, fp128 %b) { 20; CHECK-LABEL: mulkf3: 21; CHECK: __mulkf3 22 %1 = fmul fp128 %a, %b 23 ret fp128 %1 24} 25 26define fp128 @divkf3(fp128 %a, fp128 %b) { 27; CHECK-LABEL: divkf3: 28; CHECK: __divkf3 29 %1 = fdiv fp128 %a, %b 30 ret fp128 %1 31} 32 33define fp128 @extendsfkf2(float %a) { 34; CHECK-LABEL: extendsfkf2: 35; CHECK: __extendsfkf2 36 %1 = fpext float %a to fp128 37 ret fp128 %1 38} 39 40define fp128 @extenddfkf2(double %a) { 41; CHECK-LABEL: extenddfkf2: 42; CHECK: __extenddfkf2 43 %1 = fpext double %a to fp128 44 ret fp128 %1 45} 46 47define float @trunckfsf2(fp128 %a) { 48; CHECK-LABEL: trunckfsf2: 49; CHECK: __trunckfsf2 50 %1 = fptrunc fp128 %a to float 51 ret float %1 52} 53 54define double @trunckfdf2(fp128 %a) { 55; CHECK-LABEL: trunckfdf2: 56; CHECK: __trunckfdf2 57 %1 = fptrunc fp128 %a to double 58 ret double %1 59} 60 61define i32 @fixkfsi(fp128 %a) { 62; CHECK-LABEL: fixkfsi: 63; CHECK: __fixkfsi 64 %1 = fptosi fp128 %a to i32 65 ret i32 %1 66} 67 68define i64 @fixkfdi(fp128 %a) { 69; CHECK-LABEL: fixkfdi: 70; CHECK: __fixkfdi 71 %1 = fptosi fp128 %a to i64 72 ret i64 %1 73} 74 75define i32 @fixunskfsi(fp128 %a) { 76; CHECK-LABEL: fixunskfsi: 77; CHECK: __fixunskfsi 78 %1 = fptoui fp128 %a to i32 79 ret i32 %1 80} 81 82define i64 @fixunskfdi(fp128 %a) { 83; CHECK-LABEL: fixunskfdi: 84; CHECK: __fixunskfdi 85 %1 = fptoui fp128 %a to i64 86 ret i64 %1 87} 88 89define fp128 @floatsikf(i32 %a) { 90; CHECK-LABEL: floatsikf: 91; CHECK: __floatsikf 92 %1 = sitofp i32 %a to fp128 93 ret fp128 %1 94} 95 96define fp128 @floatdikf(i64 %a) { 97; CHECK-LABEL: floatdikf: 98; CHECK: __floatdikf 99 %1 = sitofp i64 %a to fp128 100 ret fp128 %1 101} 102 103define fp128 @floatunsikf(i32 %a) { 104; CHECK-LABEL: floatunsikf: 105; CHECK: __floatunsikf 106 %1 = uitofp i32 %a to fp128 107 ret fp128 %1 108} 109 110define fp128 @floatundikf(i64 %a) { 111; CHECK-LABEL: floatundikf: 112; CHECK: __floatundikf 113 %1 = uitofp i64 %a to fp128 114 ret fp128 %1 115} 116 117define i1 @test_eqkf2(fp128 %a, fp128 %b) { 118; CHECK-LABEL: test_eqkf2: 119; CHECK: __eqkf2 120 %1 = fcmp oeq fp128 %a, %b 121 ret i1 %1 122} 123 124define i1 @test_nekf2(fp128 %a, fp128 %b) { 125; CHECK-LABEL: test_nekf2: 126; CHECK: __nekf2 127 %1 = fcmp une fp128 %a, %b 128 ret i1 %1 129} 130 131define i1 @test_gekf2(fp128 %a, fp128 %b) { 132; CHECK-LABEL: test_gekf2: 133; CHECK: __gekf2 134 %1 = fcmp oge fp128 %a, %b 135 ret i1 %1 136} 137 138define i1 @test_ltkf2(fp128 %a, fp128 %b) { 139; CHECK-LABEL: test_ltkf2: 140; CHECK: __ltkf2 141 %1 = fcmp olt fp128 %a, %b 142 ret i1 %1 143} 144 145define i1 @test_lekf2(fp128 %a, fp128 %b) { 146; CHECK-LABEL: test_lekf2: 147; CHECK: __lekf2 148 %1 = fcmp ole fp128 %a, %b 149 ret i1 %1 150} 151 152define i1 @test_gtkf2(fp128 %a, fp128 %b) { 153; CHECK-LABEL: test_gtkf2: 154; CHECK: __gtkf2 155 %1 = fcmp ogt fp128 %a, %b 156 ret i1 %1 157} 158 159define i1 @test_unordkf2(fp128 %a, fp128 %b) { 160; CHECK-LABEL: test_unordkf2: 161; CHECK: __unordkf2 162 %1 = fcmp uno fp128 %a, %b 163 ret i1 %1 164} 165