1; RUN: llvm-as < %s | llvm-dis > %t.orig 2; RUN: llvm-as < %s | llvm-c-test --echo > %t.echo 3; RUN: diff -w %t.orig %t.echo 4; 5source_filename = "/test/Bindings/float_ops.ll" 6target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" 7 8 9define float @float_ops_f32(float %a, float %b) { 10 %1 = fneg float %a 11 12 %2 = fadd float %a, %b 13 %3 = fsub float %a, %b 14 %4 = fmul float %a, %b 15 %5 = fdiv float %a, %b 16 %6 = frem float %a, %b 17 18 ret float %1 19} 20 21define double @float_ops_f64(double %a, double %b) { 22 %1 = fneg double %a 23 24 %2 = fadd double %a, %b 25 %3 = fsub double %a, %b 26 %4 = fmul double %a, %b 27 %5 = fdiv double %a, %b 28 %6 = frem double %a, %b 29 30 ret double %1 31} 32 33define void @float_cmp_f32(float %a, float %b) { 34 %1 = fcmp oeq float %a, %b 35 %2 = fcmp ogt float %a, %b 36 %3 = fcmp olt float %a, %b 37 %4 = fcmp ole float %a, %b 38 %5 = fcmp one float %a, %b 39 40 %6 = fcmp ueq float %a, %b 41 %7 = fcmp ugt float %a, %b 42 %8 = fcmp ult float %a, %b 43 %9 = fcmp ule float %a, %b 44 %10 = fcmp une float %a, %b 45 46 %11 = fcmp ord float %a, %b 47 %12 = fcmp false float %a, %b 48 %13 = fcmp true float %a, %b 49 50 ret void 51} 52 53define void @float_cmp_f64(double %a, double %b) { 54 %1 = fcmp oeq double %a, %b 55 %2 = fcmp ogt double %a, %b 56 %3 = fcmp olt double %a, %b 57 %4 = fcmp ole double %a, %b 58 %5 = fcmp one double %a, %b 59 60 %6 = fcmp ueq double %a, %b 61 %7 = fcmp ugt double %a, %b 62 %8 = fcmp ult double %a, %b 63 %9 = fcmp ule double %a, %b 64 %10 = fcmp une double %a, %b 65 66 %11 = fcmp ord double %a, %b 67 %12 = fcmp false double %a, %b 68 %13 = fcmp true double %a, %b 69 70 ret void 71} 72 73define void @float_cmp_fast_f32(float %a, float %b) { 74 %1 = fcmp fast oeq float %a, %b 75 %2 = fcmp nsz ogt float %a, %b 76 %3 = fcmp nsz nnan olt float %a, %b 77 %4 = fcmp contract ole float %a, %b 78 %5 = fcmp nnan one float %a, %b 79 80 %6 = fcmp nnan ninf nsz ueq float %a, %b 81 %7 = fcmp arcp ugt float %a, %b 82 %8 = fcmp fast ult float %a, %b 83 %9 = fcmp fast ule float %a, %b 84 %10 = fcmp fast une float %a, %b 85 86 %11 = fcmp fast ord float %a, %b 87 %12 = fcmp nnan ninf false float %a, %b 88 %13 = fcmp nnan ninf true float %a, %b 89 90 ret void 91} 92 93define void @float_cmp_fast_f64(double %a, double %b) { 94 %1 = fcmp fast oeq double %a, %b 95 %2 = fcmp nsz ogt double %a, %b 96 %3 = fcmp nsz nnan olt double %a, %b 97 %4 = fcmp contract ole double %a, %b 98 %5 = fcmp nnan one double %a, %b 99 100 %6 = fcmp nnan ninf nsz ueq double %a, %b 101 %7 = fcmp arcp ugt double %a, %b 102 %8 = fcmp fast ult double %a, %b 103 %9 = fcmp fast ule double %a, %b 104 %10 = fcmp fast une double %a, %b 105 106 %11 = fcmp fast ord double %a, %b 107 %12 = fcmp nnan ninf false double %a, %b 108 %13 = fcmp nnan ninf true double %a, %b 109 110 ret void 111} 112 113define float @float_ops_fast_f32(float %a, float %b) { 114 %1 = fneg nnan float %a 115 116 %2 = fadd ninf float %a, %b 117 %3 = fsub nsz float %a, %b 118 %4 = fmul arcp float %a, %b 119 %5 = fdiv contract float %a, %b 120 %6 = frem afn float %a, %b 121 122 %7 = fadd reassoc float %a, %b 123 %8 = fadd reassoc float %7, %b 124 125 %9 = fadd fast float %a, %b 126 %10 = fadd nnan nsz float %a, %b 127 %11 = frem nnan nsz float %a, %b 128 %12 = fdiv nnan nsz arcp float %a, %b 129 %13 = fmul nnan nsz ninf contract float %a, %b 130 %14 = fmul nnan nsz ninf arcp contract afn reassoc float %a, %b 131 132 ret float %1 133} 134 135define double @float_ops_fast_f64(double %a, double %b) { 136 %1 = fneg nnan double %a 137 138 %2 = fadd ninf double %a, %b 139 %3 = fsub nsz double %a, %b 140 %4 = fmul arcp double %a, %b 141 %5 = fdiv contract double %a, %b 142 %6 = frem afn double %a, %b 143 144 %7 = fadd reassoc double %a, %b 145 %8 = fadd reassoc double %7, %b 146 147 %9 = fadd fast double %a, %b 148 %10 = fadd nnan nsz double %a, %b 149 %11 = frem nnan nsz double %a, %b 150 %12 = fdiv nnan nsz arcp double %a, %b 151 %13 = fmul nnan nsz ninf contract double %a, %b 152 %14 = fmul nnan nsz ninf arcp contract afn reassoc double %a, %b 153 154 ret double %1 155} 156 157