brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.2 KiB · 3c10b09 Raw
610 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=wasm32-unknown-unknown < %s | FileCheck -check-prefixes=CHECK,WASM32 %s3; RUN: llc -mtriple=wasm64-unknown-unknown < %s | FileCheck -check-prefixes=CHECK,WASM64 %s4 5define { half, half } @test_sincos_f16(half %a) #0 {6; WASM32-LABEL: test_sincos_f16:7; WASM32:         .functype test_sincos_f16 (i32, f32) -> ()8; WASM32-NEXT:  # %bb.0:9; WASM32-NEXT:    local.get 010; WASM32-NEXT:    local.get 111; WASM32-NEXT:    call __truncsfhf212; WASM32-NEXT:    call __extendhfsf213; WASM32-NEXT:    local.tee 114; WASM32-NEXT:    call cosf15; WASM32-NEXT:    call __truncsfhf216; WASM32-NEXT:    i32.store16 217; WASM32-NEXT:    local.get 018; WASM32-NEXT:    local.get 119; WASM32-NEXT:    call sinf20; WASM32-NEXT:    call __truncsfhf221; WASM32-NEXT:    i32.store16 022; WASM32-NEXT:    # fallthrough-return23;24; WASM64-LABEL: test_sincos_f16:25; WASM64:         .functype test_sincos_f16 (i64, f32) -> ()26; WASM64-NEXT:  # %bb.0:27; WASM64-NEXT:    local.get 028; WASM64-NEXT:    local.get 129; WASM64-NEXT:    call __truncsfhf230; WASM64-NEXT:    call __extendhfsf231; WASM64-NEXT:    local.tee 132; WASM64-NEXT:    call cosf33; WASM64-NEXT:    call __truncsfhf234; WASM64-NEXT:    i32.store16 235; WASM64-NEXT:    local.get 036; WASM64-NEXT:    local.get 137; WASM64-NEXT:    call sinf38; WASM64-NEXT:    call __truncsfhf239; WASM64-NEXT:    i32.store16 040; WASM64-NEXT:    # fallthrough-return41  %result = call { half, half } @llvm.sincos.f16(half %a)42  ret { half, half } %result43}44 45define half @test_sincos_f16_only_use_sin(half %a) #0 {46; CHECK-LABEL: test_sincos_f16_only_use_sin:47; CHECK:         .functype test_sincos_f16_only_use_sin (f32) -> (f32)48; CHECK-NEXT:  # %bb.0:49; CHECK-NEXT:    local.get 050; CHECK-NEXT:    call __truncsfhf251; CHECK-NEXT:    call __extendhfsf252; CHECK-NEXT:    call sinf53; CHECK-NEXT:    # fallthrough-return54  %result = call { half, half } @llvm.sincos.f16(half %a)55  %result.0 = extractvalue { half, half } %result, 056  ret half %result.057}58 59define half @test_sincos_f16_only_use_cos(half %a) #0 {60; CHECK-LABEL: test_sincos_f16_only_use_cos:61; CHECK:         .functype test_sincos_f16_only_use_cos (f32) -> (f32)62; CHECK-NEXT:  # %bb.0:63; CHECK-NEXT:    local.get 064; CHECK-NEXT:    call __truncsfhf265; CHECK-NEXT:    call __extendhfsf266; CHECK-NEXT:    call cosf67; CHECK-NEXT:    # fallthrough-return68  %result = call { half, half } @llvm.sincos.f16(half %a)69  %result.1 = extractvalue { half, half } %result, 170  ret half %result.171}72 73define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) #0 {74; WASM32-LABEL: test_sincos_v2f16:75; WASM32:         .functype test_sincos_v2f16 (i32, f32, f32) -> ()76; WASM32-NEXT:  # %bb.0:77; WASM32-NEXT:    local.get 078; WASM32-NEXT:    local.get 279; WASM32-NEXT:    call __truncsfhf280; WASM32-NEXT:    call __extendhfsf281; WASM32-NEXT:    local.tee 282; WASM32-NEXT:    call cosf83; WASM32-NEXT:    call __truncsfhf284; WASM32-NEXT:    i32.store16 685; WASM32-NEXT:    local.get 086; WASM32-NEXT:    local.get 187; WASM32-NEXT:    call __truncsfhf288; WASM32-NEXT:    call __extendhfsf289; WASM32-NEXT:    local.tee 190; WASM32-NEXT:    call cosf91; WASM32-NEXT:    call __truncsfhf292; WASM32-NEXT:    i32.store16 493; WASM32-NEXT:    local.get 094; WASM32-NEXT:    local.get 295; WASM32-NEXT:    call sinf96; WASM32-NEXT:    call __truncsfhf297; WASM32-NEXT:    i32.store16 298; WASM32-NEXT:    local.get 099; WASM32-NEXT:    local.get 1100; WASM32-NEXT:    call sinf101; WASM32-NEXT:    call __truncsfhf2102; WASM32-NEXT:    i32.store16 0103; WASM32-NEXT:    # fallthrough-return104;105; WASM64-LABEL: test_sincos_v2f16:106; WASM64:         .functype test_sincos_v2f16 (i64, f32, f32) -> ()107; WASM64-NEXT:  # %bb.0:108; WASM64-NEXT:    local.get 0109; WASM64-NEXT:    local.get 2110; WASM64-NEXT:    call __truncsfhf2111; WASM64-NEXT:    call __extendhfsf2112; WASM64-NEXT:    local.tee 2113; WASM64-NEXT:    call cosf114; WASM64-NEXT:    call __truncsfhf2115; WASM64-NEXT:    i32.store16 6116; WASM64-NEXT:    local.get 0117; WASM64-NEXT:    local.get 1118; WASM64-NEXT:    call __truncsfhf2119; WASM64-NEXT:    call __extendhfsf2120; WASM64-NEXT:    local.tee 1121; WASM64-NEXT:    call cosf122; WASM64-NEXT:    call __truncsfhf2123; WASM64-NEXT:    i32.store16 4124; WASM64-NEXT:    local.get 0125; WASM64-NEXT:    local.get 2126; WASM64-NEXT:    call sinf127; WASM64-NEXT:    call __truncsfhf2128; WASM64-NEXT:    i32.store16 2129; WASM64-NEXT:    local.get 0130; WASM64-NEXT:    local.get 1131; WASM64-NEXT:    call sinf132; WASM64-NEXT:    call __truncsfhf2133; WASM64-NEXT:    i32.store16 0134; WASM64-NEXT:    # fallthrough-return135  %result = call { <2 x half>, <2 x half> } @llvm.sincos.v2f16(<2 x half> %a)136  ret { <2 x half>, <2 x half> } %result137}138 139define { float, float } @test_sincos_f32(float %a) #0 {140; WASM32-LABEL: test_sincos_f32:141; WASM32:         .functype test_sincos_f32 (i32, f32) -> ()142; WASM32-NEXT:  # %bb.0:143; WASM32-NEXT:    local.get 0144; WASM32-NEXT:    local.get 1145; WASM32-NEXT:    call cosf146; WASM32-NEXT:    f32.store 4147; WASM32-NEXT:    local.get 0148; WASM32-NEXT:    local.get 1149; WASM32-NEXT:    call sinf150; WASM32-NEXT:    f32.store 0151; WASM32-NEXT:    # fallthrough-return152;153; WASM64-LABEL: test_sincos_f32:154; WASM64:         .functype test_sincos_f32 (i64, f32) -> ()155; WASM64-NEXT:  # %bb.0:156; WASM64-NEXT:    local.get 0157; WASM64-NEXT:    local.get 1158; WASM64-NEXT:    call cosf159; WASM64-NEXT:    f32.store 4160; WASM64-NEXT:    local.get 0161; WASM64-NEXT:    local.get 1162; WASM64-NEXT:    call sinf163; WASM64-NEXT:    f32.store 0164; WASM64-NEXT:    # fallthrough-return165  %result = call { float, float } @llvm.sincos.f32(float %a)166  ret { float, float } %result167}168 169define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) #0 {170; WASM32-LABEL: test_sincos_v2f32:171; WASM32:         .functype test_sincos_v2f32 (i32, f32, f32) -> ()172; WASM32-NEXT:  # %bb.0:173; WASM32-NEXT:    local.get 0174; WASM32-NEXT:    local.get 2175; WASM32-NEXT:    call cosf176; WASM32-NEXT:    f32.store 12177; WASM32-NEXT:    local.get 0178; WASM32-NEXT:    local.get 1179; WASM32-NEXT:    call cosf180; WASM32-NEXT:    f32.store 8181; WASM32-NEXT:    local.get 0182; WASM32-NEXT:    local.get 2183; WASM32-NEXT:    call sinf184; WASM32-NEXT:    f32.store 4185; WASM32-NEXT:    local.get 0186; WASM32-NEXT:    local.get 1187; WASM32-NEXT:    call sinf188; WASM32-NEXT:    f32.store 0189; WASM32-NEXT:    # fallthrough-return190;191; WASM64-LABEL: test_sincos_v2f32:192; WASM64:         .functype test_sincos_v2f32 (i64, f32, f32) -> ()193; WASM64-NEXT:  # %bb.0:194; WASM64-NEXT:    local.get 0195; WASM64-NEXT:    local.get 2196; WASM64-NEXT:    call cosf197; WASM64-NEXT:    f32.store 12198; WASM64-NEXT:    local.get 0199; WASM64-NEXT:    local.get 1200; WASM64-NEXT:    call cosf201; WASM64-NEXT:    f32.store 8202; WASM64-NEXT:    local.get 0203; WASM64-NEXT:    local.get 2204; WASM64-NEXT:    call sinf205; WASM64-NEXT:    f32.store 4206; WASM64-NEXT:    local.get 0207; WASM64-NEXT:    local.get 1208; WASM64-NEXT:    call sinf209; WASM64-NEXT:    f32.store 0210; WASM64-NEXT:    # fallthrough-return211  %result = call { <2 x float>, <2 x float> } @llvm.sincos.v2f32(<2 x float> %a)212  ret { <2 x float>, <2 x float> } %result213}214 215define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) #0 {216; WASM32-LABEL: test_sincos_v3f32:217; WASM32:         .functype test_sincos_v3f32 (i32, f32, f32, f32) -> ()218; WASM32-NEXT:  # %bb.0:219; WASM32-NEXT:    local.get 0220; WASM32-NEXT:    local.get 3221; WASM32-NEXT:    call cosf222; WASM32-NEXT:    f32.store 24223; WASM32-NEXT:    local.get 0224; WASM32-NEXT:    local.get 3225; WASM32-NEXT:    call sinf226; WASM32-NEXT:    f32.store 8227; WASM32-NEXT:    local.get 2228; WASM32-NEXT:    call cosf229; WASM32-NEXT:    local.set 3230; WASM32-NEXT:    local.get 0231; WASM32-NEXT:    local.get 1232; WASM32-NEXT:    call cosf233; WASM32-NEXT:    i32.reinterpret_f32234; WASM32-NEXT:    i64.extend_i32_u235; WASM32-NEXT:    local.get 3236; WASM32-NEXT:    i32.reinterpret_f32237; WASM32-NEXT:    i64.extend_i32_u238; WASM32-NEXT:    i64.const 32239; WASM32-NEXT:    i64.shl240; WASM32-NEXT:    i64.or241; WASM32-NEXT:    i64.store 16242; WASM32-NEXT:    local.get 2243; WASM32-NEXT:    call sinf244; WASM32-NEXT:    local.set 3245; WASM32-NEXT:    local.get 0246; WASM32-NEXT:    local.get 1247; WASM32-NEXT:    call sinf248; WASM32-NEXT:    i32.reinterpret_f32249; WASM32-NEXT:    i64.extend_i32_u250; WASM32-NEXT:    local.get 3251; WASM32-NEXT:    i32.reinterpret_f32252; WASM32-NEXT:    i64.extend_i32_u253; WASM32-NEXT:    i64.const 32254; WASM32-NEXT:    i64.shl255; WASM32-NEXT:    i64.or256; WASM32-NEXT:    i64.store 0257; WASM32-NEXT:    # fallthrough-return258;259; WASM64-LABEL: test_sincos_v3f32:260; WASM64:         .functype test_sincos_v3f32 (i64, f32, f32, f32) -> ()261; WASM64-NEXT:  # %bb.0:262; WASM64-NEXT:    local.get 0263; WASM64-NEXT:    local.get 3264; WASM64-NEXT:    call cosf265; WASM64-NEXT:    f32.store 24266; WASM64-NEXT:    local.get 0267; WASM64-NEXT:    local.get 3268; WASM64-NEXT:    call sinf269; WASM64-NEXT:    f32.store 8270; WASM64-NEXT:    local.get 2271; WASM64-NEXT:    call cosf272; WASM64-NEXT:    local.set 3273; WASM64-NEXT:    local.get 0274; WASM64-NEXT:    local.get 1275; WASM64-NEXT:    call cosf276; WASM64-NEXT:    i32.reinterpret_f32277; WASM64-NEXT:    i64.extend_i32_u278; WASM64-NEXT:    local.get 3279; WASM64-NEXT:    i32.reinterpret_f32280; WASM64-NEXT:    i64.extend_i32_u281; WASM64-NEXT:    i64.const 32282; WASM64-NEXT:    i64.shl283; WASM64-NEXT:    i64.or284; WASM64-NEXT:    i64.store 16285; WASM64-NEXT:    local.get 2286; WASM64-NEXT:    call sinf287; WASM64-NEXT:    local.set 3288; WASM64-NEXT:    local.get 0289; WASM64-NEXT:    local.get 1290; WASM64-NEXT:    call sinf291; WASM64-NEXT:    i32.reinterpret_f32292; WASM64-NEXT:    i64.extend_i32_u293; WASM64-NEXT:    local.get 3294; WASM64-NEXT:    i32.reinterpret_f32295; WASM64-NEXT:    i64.extend_i32_u296; WASM64-NEXT:    i64.const 32297; WASM64-NEXT:    i64.shl298; WASM64-NEXT:    i64.or299; WASM64-NEXT:    i64.store 0300; WASM64-NEXT:    # fallthrough-return301  %result = call { <3 x float>, <3 x float> } @llvm.sincos.v3f32(<3 x float> %a)302  ret { <3 x float>, <3 x float> } %result303}304 305define { double, double } @test_sincos_f64(double %a) #0 {306; WASM32-LABEL: test_sincos_f64:307; WASM32:         .functype test_sincos_f64 (i32, f64) -> ()308; WASM32-NEXT:  # %bb.0:309; WASM32-NEXT:    local.get 0310; WASM32-NEXT:    local.get 1311; WASM32-NEXT:    call cos312; WASM32-NEXT:    f64.store 8313; WASM32-NEXT:    local.get 0314; WASM32-NEXT:    local.get 1315; WASM32-NEXT:    call sin316; WASM32-NEXT:    f64.store 0317; WASM32-NEXT:    # fallthrough-return318;319; WASM64-LABEL: test_sincos_f64:320; WASM64:         .functype test_sincos_f64 (i64, f64) -> ()321; WASM64-NEXT:  # %bb.0:322; WASM64-NEXT:    local.get 0323; WASM64-NEXT:    local.get 1324; WASM64-NEXT:    call cos325; WASM64-NEXT:    f64.store 8326; WASM64-NEXT:    local.get 0327; WASM64-NEXT:    local.get 1328; WASM64-NEXT:    call sin329; WASM64-NEXT:    f64.store 0330; WASM64-NEXT:    # fallthrough-return331  %result = call { double, double } @llvm.sincos.f64(double %a)332  ret { double, double } %result333}334 335define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) #0 {336; WASM32-LABEL: test_sincos_v2f64:337; WASM32:         .functype test_sincos_v2f64 (i32, f64, f64) -> ()338; WASM32-NEXT:  # %bb.0:339; WASM32-NEXT:    local.get 0340; WASM32-NEXT:    local.get 2341; WASM32-NEXT:    call cos342; WASM32-NEXT:    f64.store 24343; WASM32-NEXT:    local.get 0344; WASM32-NEXT:    local.get 1345; WASM32-NEXT:    call cos346; WASM32-NEXT:    f64.store 16347; WASM32-NEXT:    local.get 0348; WASM32-NEXT:    local.get 2349; WASM32-NEXT:    call sin350; WASM32-NEXT:    f64.store 8351; WASM32-NEXT:    local.get 0352; WASM32-NEXT:    local.get 1353; WASM32-NEXT:    call sin354; WASM32-NEXT:    f64.store 0355; WASM32-NEXT:    # fallthrough-return356;357; WASM64-LABEL: test_sincos_v2f64:358; WASM64:         .functype test_sincos_v2f64 (i64, f64, f64) -> ()359; WASM64-NEXT:  # %bb.0:360; WASM64-NEXT:    local.get 0361; WASM64-NEXT:    local.get 2362; WASM64-NEXT:    call cos363; WASM64-NEXT:    f64.store 24364; WASM64-NEXT:    local.get 0365; WASM64-NEXT:    local.get 1366; WASM64-NEXT:    call cos367; WASM64-NEXT:    f64.store 16368; WASM64-NEXT:    local.get 0369; WASM64-NEXT:    local.get 2370; WASM64-NEXT:    call sin371; WASM64-NEXT:    f64.store 8372; WASM64-NEXT:    local.get 0373; WASM64-NEXT:    local.get 1374; WASM64-NEXT:    call sin375; WASM64-NEXT:    f64.store 0376; WASM64-NEXT:    # fallthrough-return377  %result = call { <2 x double>, <2 x double> } @llvm.sincos.v2f64(<2 x double> %a)378  ret { <2 x double>, <2 x double> } %result379}380 381define { fp128, fp128 } @test_sincos_f128(fp128 %a) #0 {382; WASM32-LABEL: test_sincos_f128:383; WASM32:         .functype test_sincos_f128 (i32, i64, i64) -> ()384; WASM32-NEXT:    .local i32385; WASM32-NEXT:  # %bb.0:386; WASM32-NEXT:    global.get __stack_pointer387; WASM32-NEXT:    i32.const 32388; WASM32-NEXT:    i32.sub389; WASM32-NEXT:    local.tee 3390; WASM32-NEXT:    global.set __stack_pointer391; WASM32-NEXT:    local.get 3392; WASM32-NEXT:    local.get 1393; WASM32-NEXT:    local.get 2394; WASM32-NEXT:    call cosl395; WASM32-NEXT:    local.get 3396; WASM32-NEXT:    i32.const 16397; WASM32-NEXT:    i32.add398; WASM32-NEXT:    local.get 1399; WASM32-NEXT:    local.get 2400; WASM32-NEXT:    call sinl401; WASM32-NEXT:    local.get 0402; WASM32-NEXT:    local.get 3403; WASM32-NEXT:    i64.load 8404; WASM32-NEXT:    i64.store 24405; WASM32-NEXT:    local.get 0406; WASM32-NEXT:    local.get 3407; WASM32-NEXT:    i64.load 0408; WASM32-NEXT:    i64.store 16409; WASM32-NEXT:    local.get 0410; WASM32-NEXT:    local.get 3411; WASM32-NEXT:    i64.load 24412; WASM32-NEXT:    i64.store 8413; WASM32-NEXT:    local.get 0414; WASM32-NEXT:    local.get 3415; WASM32-NEXT:    i64.load 16416; WASM32-NEXT:    i64.store 0417; WASM32-NEXT:    local.get 3418; WASM32-NEXT:    i32.const 32419; WASM32-NEXT:    i32.add420; WASM32-NEXT:    global.set __stack_pointer421; WASM32-NEXT:    # fallthrough-return422;423; WASM64-LABEL: test_sincos_f128:424; WASM64:         .functype test_sincos_f128 (i64, i64, i64) -> ()425; WASM64-NEXT:    .local i64426; WASM64-NEXT:  # %bb.0:427; WASM64-NEXT:    global.get __stack_pointer428; WASM64-NEXT:    i64.const 32429; WASM64-NEXT:    i64.sub430; WASM64-NEXT:    local.tee 3431; WASM64-NEXT:    global.set __stack_pointer432; WASM64-NEXT:    local.get 3433; WASM64-NEXT:    local.get 1434; WASM64-NEXT:    local.get 2435; WASM64-NEXT:    call cosl436; WASM64-NEXT:    local.get 3437; WASM64-NEXT:    i64.const 16438; WASM64-NEXT:    i64.add439; WASM64-NEXT:    local.get 1440; WASM64-NEXT:    local.get 2441; WASM64-NEXT:    call sinl442; WASM64-NEXT:    local.get 0443; WASM64-NEXT:    local.get 3444; WASM64-NEXT:    i64.load 8445; WASM64-NEXT:    i64.store 24446; WASM64-NEXT:    local.get 0447; WASM64-NEXT:    local.get 3448; WASM64-NEXT:    i64.load 0449; WASM64-NEXT:    i64.store 16450; WASM64-NEXT:    local.get 0451; WASM64-NEXT:    local.get 3452; WASM64-NEXT:    i64.load 24453; WASM64-NEXT:    i64.store 8454; WASM64-NEXT:    local.get 0455; WASM64-NEXT:    local.get 3456; WASM64-NEXT:    i64.load 16457; WASM64-NEXT:    i64.store 0458; WASM64-NEXT:    local.get 3459; WASM64-NEXT:    i64.const 32460; WASM64-NEXT:    i64.add461; WASM64-NEXT:    global.set __stack_pointer462; WASM64-NEXT:    # fallthrough-return463  %result = call { fp128, fp128 } @llvm.sincos.f128(fp128 %a)464  ret { fp128, fp128 } %result465}466 467define { <2 x fp128>, <2 x fp128> } @test_sincos_v2f128(<2 x fp128> %a) #0 {468; WASM32-LABEL: test_sincos_v2f128:469; WASM32:         .functype test_sincos_v2f128 (i32, i64, i64, i64, i64) -> ()470; WASM32-NEXT:    .local i32471; WASM32-NEXT:  # %bb.0:472; WASM32-NEXT:    global.get __stack_pointer473; WASM32-NEXT:    i32.const 64474; WASM32-NEXT:    i32.sub475; WASM32-NEXT:    local.tee 5476; WASM32-NEXT:    global.set __stack_pointer477; WASM32-NEXT:    local.get 5478; WASM32-NEXT:    i32.const 32479; WASM32-NEXT:    i32.add480; WASM32-NEXT:    local.get 3481; WASM32-NEXT:    local.get 4482; WASM32-NEXT:    call cosl483; WASM32-NEXT:    local.get 5484; WASM32-NEXT:    local.get 1485; WASM32-NEXT:    local.get 2486; WASM32-NEXT:    call cosl487; WASM32-NEXT:    local.get 5488; WASM32-NEXT:    i32.const 48489; WASM32-NEXT:    i32.add490; WASM32-NEXT:    local.get 3491; WASM32-NEXT:    local.get 4492; WASM32-NEXT:    call sinl493; WASM32-NEXT:    local.get 5494; WASM32-NEXT:    i32.const 16495; WASM32-NEXT:    i32.add496; WASM32-NEXT:    local.get 1497; WASM32-NEXT:    local.get 2498; WASM32-NEXT:    call sinl499; WASM32-NEXT:    local.get 0500; WASM32-NEXT:    local.get 5501; WASM32-NEXT:    i64.load 40502; WASM32-NEXT:    i64.store 56503; WASM32-NEXT:    local.get 0504; WASM32-NEXT:    local.get 5505; WASM32-NEXT:    i64.load 32506; WASM32-NEXT:    i64.store 48507; WASM32-NEXT:    local.get 0508; WASM32-NEXT:    local.get 5509; WASM32-NEXT:    i64.load 8510; WASM32-NEXT:    i64.store 40511; WASM32-NEXT:    local.get 0512; WASM32-NEXT:    local.get 5513; WASM32-NEXT:    i64.load 0514; WASM32-NEXT:    i64.store 32515; WASM32-NEXT:    local.get 0516; WASM32-NEXT:    local.get 5517; WASM32-NEXT:    i64.load 56518; WASM32-NEXT:    i64.store 24519; WASM32-NEXT:    local.get 0520; WASM32-NEXT:    local.get 5521; WASM32-NEXT:    i64.load 48522; WASM32-NEXT:    i64.store 16523; WASM32-NEXT:    local.get 0524; WASM32-NEXT:    local.get 5525; WASM32-NEXT:    i64.load 24526; WASM32-NEXT:    i64.store 8527; WASM32-NEXT:    local.get 0528; WASM32-NEXT:    local.get 5529; WASM32-NEXT:    i64.load 16530; WASM32-NEXT:    i64.store 0531; WASM32-NEXT:    local.get 5532; WASM32-NEXT:    i32.const 64533; WASM32-NEXT:    i32.add534; WASM32-NEXT:    global.set __stack_pointer535; WASM32-NEXT:    # fallthrough-return536;537; WASM64-LABEL: test_sincos_v2f128:538; WASM64:         .functype test_sincos_v2f128 (i64, i64, i64, i64, i64) -> ()539; WASM64-NEXT:    .local i64540; WASM64-NEXT:  # %bb.0:541; WASM64-NEXT:    global.get __stack_pointer542; WASM64-NEXT:    i64.const 64543; WASM64-NEXT:    i64.sub544; WASM64-NEXT:    local.tee 5545; WASM64-NEXT:    global.set __stack_pointer546; WASM64-NEXT:    local.get 5547; WASM64-NEXT:    i64.const 32548; WASM64-NEXT:    i64.add549; WASM64-NEXT:    local.get 3550; WASM64-NEXT:    local.get 4551; WASM64-NEXT:    call cosl552; WASM64-NEXT:    local.get 5553; WASM64-NEXT:    local.get 1554; WASM64-NEXT:    local.get 2555; WASM64-NEXT:    call cosl556; WASM64-NEXT:    local.get 5557; WASM64-NEXT:    i64.const 48558; WASM64-NEXT:    i64.add559; WASM64-NEXT:    local.get 3560; WASM64-NEXT:    local.get 4561; WASM64-NEXT:    call sinl562; WASM64-NEXT:    local.get 5563; WASM64-NEXT:    i64.const 16564; WASM64-NEXT:    i64.add565; WASM64-NEXT:    local.get 1566; WASM64-NEXT:    local.get 2567; WASM64-NEXT:    call sinl568; WASM64-NEXT:    local.get 0569; WASM64-NEXT:    local.get 5570; WASM64-NEXT:    i64.load 40571; WASM64-NEXT:    i64.store 56572; WASM64-NEXT:    local.get 0573; WASM64-NEXT:    local.get 5574; WASM64-NEXT:    i64.load 32575; WASM64-NEXT:    i64.store 48576; WASM64-NEXT:    local.get 0577; WASM64-NEXT:    local.get 5578; WASM64-NEXT:    i64.load 8579; WASM64-NEXT:    i64.store 40580; WASM64-NEXT:    local.get 0581; WASM64-NEXT:    local.get 5582; WASM64-NEXT:    i64.load 0583; WASM64-NEXT:    i64.store 32584; WASM64-NEXT:    local.get 0585; WASM64-NEXT:    local.get 5586; WASM64-NEXT:    i64.load 56587; WASM64-NEXT:    i64.store 24588; WASM64-NEXT:    local.get 0589; WASM64-NEXT:    local.get 5590; WASM64-NEXT:    i64.load 48591; WASM64-NEXT:    i64.store 16592; WASM64-NEXT:    local.get 0593; WASM64-NEXT:    local.get 5594; WASM64-NEXT:    i64.load 24595; WASM64-NEXT:    i64.store 8596; WASM64-NEXT:    local.get 0597; WASM64-NEXT:    local.get 5598; WASM64-NEXT:    i64.load 16599; WASM64-NEXT:    i64.store 0600; WASM64-NEXT:    local.get 5601; WASM64-NEXT:    i64.const 64602; WASM64-NEXT:    i64.add603; WASM64-NEXT:    global.set __stack_pointer604; WASM64-NEXT:    # fallthrough-return605  %result = call { <2 x fp128>, <2 x fp128> } @llvm.sincos.v2f128(<2 x fp128> %a)606  ret { <2 x fp128>, <2 x fp128> } %result607}608 609attributes #0 = { nounwind }610