100 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-unknown \3; RUN: -mcpu=pwr9 < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-unknown \5; RUN: -mcpu=pwr9 < %s | FileCheck %s6; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-aix \7; RUN: -mcpu=pwr9 < %s | FileCheck %s8; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-aix \9; RUN: -mcpu=pwr9 < %s | FileCheck %s10 11define i32 @test_builtin_ppc_compare_exp_eq(double %d) {12; CHECK-LABEL: test_builtin_ppc_compare_exp_eq:13; CHECK: # %bb.0: # %entry14; CHECK-NEXT: xscmpexpdp 0, 1, 115; CHECK-NEXT: li 3, 016; CHECK-NEXT: li 4, 117; CHECK-NEXT: iseleq 3, 4, 318; CHECK-NEXT: blr19entry:20 %0 = tail call i32 @llvm.ppc.compare.exp.eq(double %d, double %d)21 ret i32 %022}23 24declare i32 @llvm.ppc.compare.exp.eq(double, double)25 26define i32 @test_builtin_ppc_compare_exp_lt(double %d) {27; CHECK-LABEL: test_builtin_ppc_compare_exp_lt:28; CHECK: # %bb.0: # %entry29; CHECK-NEXT: xscmpexpdp 0, 1, 130; CHECK-NEXT: li 3, 031; CHECK-NEXT: li 4, 132; CHECK-NEXT: isellt 3, 4, 333; CHECK-NEXT: blr34entry:35 %0 = tail call i32 @llvm.ppc.compare.exp.lt(double %d, double %d)36 ret i32 %037}38 39declare i32 @llvm.ppc.compare.exp.lt(double, double)40 41define i32 @test_builtin_ppc_compare_exp_gt(double %d) {42; CHECK-LABEL: test_builtin_ppc_compare_exp_gt:43; CHECK: # %bb.0: # %entry44; CHECK-NEXT: xscmpexpdp 0, 1, 145; CHECK-NEXT: li 3, 046; CHECK-NEXT: li 4, 147; CHECK-NEXT: iselgt 3, 4, 348; CHECK-NEXT: blr49entry:50 %0 = tail call i32 @llvm.ppc.compare.exp.gt(double %d, double %d)51 ret i32 %052}53 54declare i32 @llvm.ppc.compare.exp.gt(double, double)55 56define i32 @test_builtin_ppc_compare_exp_uo(double %d) {57; CHECK-LABEL: test_builtin_ppc_compare_exp_uo:58; CHECK: # %bb.0: # %entry59; CHECK-NEXT: xscmpexpdp 0, 1, 160; CHECK-NEXT: li 3, 061; CHECK-NEXT: li 4, 162; CHECK-NEXT: isel 3, 4, 3, 363; CHECK-NEXT: blr64entry:65 %0 = tail call i32 @llvm.ppc.compare.exp.uo(double %d, double %d)66 ret i32 %067}68 69declare i32 @llvm.ppc.compare.exp.uo(double, double)70 71define i32 @test_builtin_ppc_test_data_class_d(double %d) {72; CHECK-LABEL: test_builtin_ppc_test_data_class_d:73; CHECK: # %bb.0: # %entry74; CHECK-NEXT: xststdcdp 0, 1, 075; CHECK-NEXT: li 3, 076; CHECK-NEXT: li 4, 177; CHECK-NEXT: iseleq 3, 4, 378; CHECK-NEXT: blr79entry:80 %test_data_class = tail call i32 @llvm.ppc.test.data.class.f64(double %d, i32 0)81 ret i32 %test_data_class82}83 84declare i32 @llvm.ppc.test.data.class.f64(double, i32 immarg)85 86define i32 @test_builtin_ppc_test_data_class_f(float %f) {87; CHECK-LABEL: test_builtin_ppc_test_data_class_f:88; CHECK: # %bb.0: # %entry89; CHECK-NEXT: xststdcsp 0, 1, 12790; CHECK-NEXT: li 3, 091; CHECK-NEXT: li 4, 192; CHECK-NEXT: iseleq 3, 4, 393; CHECK-NEXT: blr94entry:95 %test_data_class = tail call i32 @llvm.ppc.test.data.class.f32(float %f, i32 127)96 ret i32 %test_data_class97}98 99declare i32 @llvm.ppc.test.data.class.f32(float, i32 immarg)100