brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 988e63f Raw
204 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3; Function Attrs: norecurse nounwind readnone4define signext i8 @f2c(float %a) {5; CHECK-LABEL: f2c:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    cvt.w.s.sx.rz %s0, %s08; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)19; CHECK-NEXT:    b.l.t (, %s10)10entry:11  %conv = fptosi float %a to i812  ret i8 %conv13}14 15; Function Attrs: norecurse nounwind readnone16define signext i16 @f2s(float %a) {17; CHECK-LABEL: f2s:18; CHECK:       # %bb.0: # %entry19; CHECK-NEXT:    cvt.w.s.sx.rz %s0, %s020; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)121; CHECK-NEXT:    b.l.t (, %s10)22entry:23  %conv = fptosi float %a to i1624  ret i16 %conv25}26 27; Function Attrs: norecurse nounwind readnone28define i32 @f2i(float %a) {29; CHECK-LABEL: f2i:30; CHECK:       # %bb.0: # %entry31; CHECK-NEXT:    cvt.w.s.sx.rz %s0, %s032; CHECK-NEXT:    b.l.t (, %s10)33entry:34  %conv = fptosi float %a to i3235  ret i32 %conv36}37 38; Function Attrs: norecurse nounwind readnone39define i64 @f2l(float %a) {40; CHECK-LABEL: f2l:41; CHECK:       # %bb.0: # %entry42; CHECK-NEXT:    cvt.d.s %s0, %s043; CHECK-NEXT:    cvt.l.d.rz %s0, %s044; CHECK-NEXT:    b.l.t (, %s10)45entry:46  %conv = fptosi float %a to i6447  ret i64 %conv48}49 50; Function Attrs: norecurse nounwind readnone51define zeroext i8 @f2uc(float %a) {52; CHECK-LABEL: f2uc:53; CHECK:       # %bb.0: # %entry54; CHECK-NEXT:    cvt.w.s.sx.rz %s0, %s055; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)156; CHECK-NEXT:    b.l.t (, %s10)57entry:58  %conv = fptoui float %a to i859  ret i8 %conv60}61 62; Function Attrs: norecurse nounwind readnone63define zeroext i16 @f2us(float %a) {64; CHECK-LABEL: f2us:65; CHECK:       # %bb.0: # %entry66; CHECK-NEXT:    cvt.w.s.sx.rz %s0, %s067; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)168; CHECK-NEXT:    b.l.t (, %s10)69entry:70  %conv = fptoui float %a to i1671  ret i16 %conv72}73 74; Function Attrs: norecurse nounwind readnone75define i32 @f2ui(float %a) {76; CHECK-LABEL: f2ui:77; CHECK:       # %bb.0: # %entry78; CHECK-NEXT:    cvt.d.s %s0, %s079; CHECK-NEXT:    cvt.l.d.rz %s0, %s080; CHECK-NEXT:    b.l.t (, %s10)81entry:82  %conv = fptoui float %a to i3283  ret i32 %conv84}85 86; Function Attrs: norecurse nounwind readnone87define i64 @f2ul(float %a) {88; CHECK-LABEL: f2ul:89; CHECK:       # %bb.0: # %entry90; CHECK-NEXT:    lea.sl %s1, 159383552091; CHECK-NEXT:    fcmp.s %s2, %s0, %s192; CHECK-NEXT:    fsub.s %s1, %s0, %s193; CHECK-NEXT:    cvt.d.s %s1, %s194; CHECK-NEXT:    cvt.l.d.rz %s1, %s195; CHECK-NEXT:    xor %s1, %s1, (1)196; CHECK-NEXT:    cvt.d.s %s0, %s097; CHECK-NEXT:    cvt.l.d.rz %s0, %s098; CHECK-NEXT:    cmov.s.lt %s1, %s0, %s299; CHECK-NEXT:    or %s0, 0, %s1100; CHECK-NEXT:    b.l.t (, %s10)101entry:102  %conv = fptoui float %a to i64103  ret i64 %conv104}105 106; Function Attrs: norecurse nounwind readnone107define signext i8 @d2c(double %a) {108; CHECK-LABEL: d2c:109; CHECK:       # %bb.0: # %entry110; CHECK-NEXT:    cvt.w.d.sx.rz %s0, %s0111; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)1112; CHECK-NEXT:    b.l.t (, %s10)113entry:114  %conv = fptosi double %a to i8115  ret i8 %conv116}117 118; Function Attrs: norecurse nounwind readnone119define signext i16 @d2s(double %a) {120; CHECK-LABEL: d2s:121; CHECK:       # %bb.0: # %entry122; CHECK-NEXT:    cvt.w.d.sx.rz %s0, %s0123; CHECK-NEXT:    adds.w.sx %s0, %s0, (0)1124; CHECK-NEXT:    b.l.t (, %s10)125entry:126  %conv = fptosi double %a to i16127  ret i16 %conv128}129 130; Function Attrs: norecurse nounwind readnone131define i32 @d2i(double %a) {132; CHECK-LABEL: d2i:133; CHECK:       # %bb.0: # %entry134; CHECK-NEXT:    cvt.w.d.sx.rz %s0, %s0135; CHECK-NEXT:    b.l.t (, %s10)136entry:137  %conv = fptosi double %a to i32138  ret i32 %conv139}140 141; Function Attrs: norecurse nounwind readnone142define i64 @d2l(double %a) {143; CHECK-LABEL: d2l:144; CHECK:       # %bb.0: # %entry145; CHECK-NEXT:    cvt.l.d.rz %s0, %s0146; CHECK-NEXT:    b.l.t (, %s10)147entry:148  %conv = fptosi double %a to i64149  ret i64 %conv150}151 152; Function Attrs: norecurse nounwind readnone153define zeroext i8 @d2uc(double %a) {154; CHECK-LABEL: d2uc:155; CHECK:       # %bb.0: # %entry156; CHECK-NEXT:    cvt.w.d.sx.rz %s0, %s0157; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1158; CHECK-NEXT:    b.l.t (, %s10)159entry:160  %conv = fptoui double %a to i8161  ret i8 %conv162}163 164; Function Attrs: norecurse nounwind readnone165define zeroext i16 @d2us(double %a) {166; CHECK-LABEL: d2us:167; CHECK:       # %bb.0: # %entry168; CHECK-NEXT:    cvt.w.d.sx.rz %s0, %s0169; CHECK-NEXT:    adds.w.zx %s0, %s0, (0)1170; CHECK-NEXT:    b.l.t (, %s10)171entry:172  %conv = fptoui double %a to i16173  ret i16 %conv174}175 176; Function Attrs: norecurse nounwind readnone177define i32 @d2ui(double %a) {178; CHECK-LABEL: d2ui:179; CHECK:       # %bb.0: # %entry180; CHECK-NEXT:    cvt.l.d.rz %s0, %s0181; CHECK-NEXT:    b.l.t (, %s10)182entry:183  %conv = fptoui double %a to i32184  ret i32 %conv185}186 187; Function Attrs: norecurse nounwind readnone188define i64 @d2ul(double %a) {189; CHECK-LABEL: d2ul:190; CHECK:       # %bb.0: # %entry191; CHECK-NEXT:    lea.sl %s1, 1138753536192; CHECK-NEXT:    fcmp.d %s2, %s0, %s1193; CHECK-NEXT:    fsub.d %s1, %s0, %s1194; CHECK-NEXT:    cvt.l.d.rz %s1, %s1195; CHECK-NEXT:    xor %s1, %s1, (1)1196; CHECK-NEXT:    cvt.l.d.rz %s0, %s0197; CHECK-NEXT:    cmov.d.lt %s1, %s0, %s2198; CHECK-NEXT:    or %s0, 0, %s1199; CHECK-NEXT:    b.l.t (, %s10)200entry:201  %conv = fptoui double %a to i64202  ret i64 %conv203}204