1d9143ce3SChen Zheng; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2d9143ce3SChen Zheng; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel -o - \ 3d9143ce3SChen Zheng; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names < %s | FileCheck %s 4d9143ce3SChen Zheng 5d9143ce3SChen Zhengdefine float @float_add(float %a, float %b) { 6d9143ce3SChen Zheng; CHECK-LABEL: float_add: 7d9143ce3SChen Zheng; CHECK: # %bb.0: # %entry 8d9143ce3SChen Zheng; CHECK-NEXT: xsaddsp f1, f1, f2 9d9143ce3SChen Zheng; CHECK-NEXT: blr 10d9143ce3SChen Zhengentry: 11d9143ce3SChen Zheng %add = fadd float %a, %b 12d9143ce3SChen Zheng ret float %add 13d9143ce3SChen Zheng} 14d9143ce3SChen Zheng 15d9143ce3SChen Zhengdefine double @double_add(double %a, double %b) { 16d9143ce3SChen Zheng; CHECK-LABEL: double_add: 17d9143ce3SChen Zheng; CHECK: # %bb.0: # %entry 18d9143ce3SChen Zheng; CHECK-NEXT: xsadddp f1, f1, f2 19d9143ce3SChen Zheng; CHECK-NEXT: blr 20d9143ce3SChen Zhengentry: 21d9143ce3SChen Zheng %add = fadd double %a, %b 22d9143ce3SChen Zheng ret double %add 23d9143ce3SChen Zheng} 24d9143ce3SChen Zheng 25d9143ce3SChen Zhengdefine float @float_sub(float %a, float %b) { 26d9143ce3SChen Zheng; CHECK-LABEL: float_sub: 27d9143ce3SChen Zheng; CHECK: # %bb.0: # %entry 28d9143ce3SChen Zheng; CHECK-NEXT: xssubsp f1, f1, f2 29d9143ce3SChen Zheng; CHECK-NEXT: blr 30d9143ce3SChen Zhengentry: 31d9143ce3SChen Zheng %sub = fsub float %a, %b 32d9143ce3SChen Zheng ret float %sub 33d9143ce3SChen Zheng} 34d9143ce3SChen Zheng 35d9143ce3SChen Zhengdefine float @float_mul(float %a, float %b) { 36d9143ce3SChen Zheng; CHECK-LABEL: float_mul: 37d9143ce3SChen Zheng; CHECK: # %bb.0: # %entry 38d9143ce3SChen Zheng; CHECK-NEXT: xsmulsp f1, f1, f2 39d9143ce3SChen Zheng; CHECK-NEXT: blr 40d9143ce3SChen Zhengentry: 41d9143ce3SChen Zheng %mul = fmul float %a, %b 42d9143ce3SChen Zheng ret float %mul 43d9143ce3SChen Zheng} 44d9143ce3SChen Zheng 45d9143ce3SChen Zhengdefine float @float_div(float %a, float %b) { 46d9143ce3SChen Zheng; CHECK-LABEL: float_div: 47d9143ce3SChen Zheng; CHECK: # %bb.0: # %entry 48d9143ce3SChen Zheng; CHECK-NEXT: xsdivsp f1, f1, f2 49d9143ce3SChen Zheng; CHECK-NEXT: blr 50d9143ce3SChen Zhengentry: 51d9143ce3SChen Zheng %div = fdiv float %a, %b 52d9143ce3SChen Zheng ret float %div 53d9143ce3SChen Zheng} 54*3508f123SAmy Kwan 55*3508f123SAmy Kwandefine <4 x float> @test_fadd_v4f32(<4 x float> %a, <4 x float> %b) { 56*3508f123SAmy Kwan; CHECK-LABEL: test_fadd_v4f32: 57*3508f123SAmy Kwan; CHECK: # %bb.0: 58*3508f123SAmy Kwan; CHECK-NEXT: xvaddsp v2, v2, v3 59*3508f123SAmy Kwan; CHECK-NEXT: blr 60*3508f123SAmy Kwan %res = fadd <4 x float> %a, %b 61*3508f123SAmy Kwan ret <4 x float> %res 62*3508f123SAmy Kwan} 63*3508f123SAmy Kwan 64*3508f123SAmy Kwandefine <2 x double> @test_fadd_v2f64(<2 x double> %a, <2 x double> %b) { 65*3508f123SAmy Kwan; CHECK-LABEL: test_fadd_v2f64: 66*3508f123SAmy Kwan; CHECK: # %bb.0: 67*3508f123SAmy Kwan; CHECK-NEXT: xvadddp v2, v2, v3 68*3508f123SAmy Kwan; CHECK-NEXT: blr 69*3508f123SAmy Kwan %res = fadd <2 x double> %a, %b 70*3508f123SAmy Kwan ret <2 x double> %res 71*3508f123SAmy Kwan} 72*3508f123SAmy Kwan 73*3508f123SAmy Kwandefine <4 x float> @test_fsub_v4f32(<4 x float> %a, <4 x float> %b) { 74*3508f123SAmy Kwan; CHECK-LABEL: test_fsub_v4f32: 75*3508f123SAmy Kwan; CHECK: # %bb.0: 76*3508f123SAmy Kwan; CHECK-NEXT: xvsubsp v2, v2, v3 77*3508f123SAmy Kwan; CHECK-NEXT: blr 78*3508f123SAmy Kwan %res = fsub <4 x float> %a, %b 79*3508f123SAmy Kwan ret <4 x float> %res 80*3508f123SAmy Kwan} 81*3508f123SAmy Kwan 82*3508f123SAmy Kwandefine <2 x double> @test_fsub_v2f64(<2 x double> %a, <2 x double> %b) { 83*3508f123SAmy Kwan; CHECK-LABEL: test_fsub_v2f64: 84*3508f123SAmy Kwan; CHECK: # %bb.0: 85*3508f123SAmy Kwan; CHECK-NEXT: xvsubdp v2, v2, v3 86*3508f123SAmy Kwan; CHECK-NEXT: blr 87*3508f123SAmy Kwan %res = fsub <2 x double> %a, %b 88*3508f123SAmy Kwan ret <2 x double> %res 89*3508f123SAmy Kwan} 90*3508f123SAmy Kwan 91*3508f123SAmy Kwandefine <4 x float> @test_fmul_v4f32(<4 x float> %a, <4 x float> %b) { 92*3508f123SAmy Kwan; CHECK-LABEL: test_fmul_v4f32: 93*3508f123SAmy Kwan; CHECK: # %bb.0: 94*3508f123SAmy Kwan; CHECK-NEXT: xvmulsp v2, v2, v3 95*3508f123SAmy Kwan; CHECK-NEXT: blr 96*3508f123SAmy Kwan %res = fmul <4 x float> %a, %b 97*3508f123SAmy Kwan ret <4 x float> %res 98*3508f123SAmy Kwan} 99*3508f123SAmy Kwan 100*3508f123SAmy Kwandefine <2 x double> @test_fmul_v2f64(<2 x double> %a, <2 x double> %b) { 101*3508f123SAmy Kwan; CHECK-LABEL: test_fmul_v2f64: 102*3508f123SAmy Kwan; CHECK: # %bb.0: 103*3508f123SAmy Kwan; CHECK-NEXT: xvmuldp v2, v2, v3 104*3508f123SAmy Kwan; CHECK-NEXT: blr 105*3508f123SAmy Kwan %res = fmul <2 x double> %a, %b 106*3508f123SAmy Kwan ret <2 x double> %res 107*3508f123SAmy Kwan} 108*3508f123SAmy Kwan 109*3508f123SAmy Kwandefine <4 x float> @test_fdiv_v4f32(<4 x float> %a, <4 x float> %b) { 110*3508f123SAmy Kwan; CHECK-LABEL: test_fdiv_v4f32: 111*3508f123SAmy Kwan; CHECK: # %bb.0: 112*3508f123SAmy Kwan; CHECK-NEXT: xvdivsp v2, v2, v3 113*3508f123SAmy Kwan; CHECK-NEXT: blr 114*3508f123SAmy Kwan %res = fdiv <4 x float> %a, %b 115*3508f123SAmy Kwan ret <4 x float> %res 116*3508f123SAmy Kwan} 117*3508f123SAmy Kwan 118*3508f123SAmy Kwandefine <2 x double> @test_fdiv_v2f64(<2 x double> %a, <2 x double> %b) { 119*3508f123SAmy Kwan; CHECK-LABEL: test_fdiv_v2f64: 120*3508f123SAmy Kwan; CHECK: # %bb.0: 121*3508f123SAmy Kwan; CHECK-NEXT: xvdivdp v2, v2, v3 122*3508f123SAmy Kwan; CHECK-NEXT: blr 123*3508f123SAmy Kwan %res = fdiv <2 x double> %a, %b 124*3508f123SAmy Kwan ret <2 x double> %res 125*3508f123SAmy Kwan} 126