1; Test basic code generation for f32 arithmetic WebAssembly instructions. 2test compile 3 4target i686 haswell 5target i686 baseline 6target x86_64 haswell 7target x86_64 baseline 8 9; Constants. 10 11function %f32_const() -> f32 { 12block0: 13 v1 = f32const 0x3.0 14 return v1 15} 16 17; Unary operations 18 19function %f32_abs(f32) -> f32 { 20block0(v0: f32): 21 v1 = fabs v0 22 return v1 23} 24 25function %f32_neg(f32) -> f32 { 26block0(v0: f32): 27 v1 = fneg v0 28 return v1 29} 30 31function %f32_sqrt(f32) -> f32 { 32block0(v0: f32): 33 v1 = sqrt v0 34 return v1 35} 36 37function %f32_ceil(f32) -> f32 { 38block0(v0: f32): 39 v1 = ceil v0 40 return v1 41} 42 43function %f32_floor(f32) -> f32 { 44block0(v0: f32): 45 v1 = floor v0 46 return v1 47} 48 49function %f32_trunc(f32) -> f32 { 50block0(v0: f32): 51 v1 = trunc v0 52 return v1 53} 54 55function %f32_nearest (f32) -> f32 { 56block0(v0: f32): 57 v1 = nearest v0 58 return v1 59} 60 61; Binary Operations 62 63function %f32_add(f32, f32) -> f32 { 64block0(v0: f32, v1: f32): 65 v2 = fadd v0, v1 66 return v2 67} 68 69function %f32_sub(f32, f32) -> f32 { 70block0(v0: f32, v1: f32): 71 v2 = fsub v0, v1 72 return v2 73} 74 75function %f32_mul(f32, f32) -> f32 { 76block0(v0: f32, v1: f32): 77 v2 = fmul v0, v1 78 return v2 79} 80 81function %f32_div(f32, f32) -> f32 { 82block0(v0: f32, v1: f32): 83 v2 = fdiv v0, v1 84 return v2 85} 86 87function %f32_min(f32, f32) -> f32 { 88block0(v0: f32, v1: f32): 89 v2 = fmin v0, v1 90 return v2 91} 92 93function %f32_max(f32, f32) -> f32 { 94block0(v0: f32, v1: f32): 95 v2 = fmax v0, v1 96 return v2 97} 98 99function %f32_copysign(f32, f32) -> f32 { 100block0(v0: f32, v1: f32): 101 v2 = fcopysign v0, v1 102 return v2 103} 104