brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · eaa001f Raw
200 lines · plain
1; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s2 3; Function Attrs: norecurse nounwind readnone4define float @c2f(i8 signext %a) {5; CHECK-LABEL: c2f:6; CHECK:       # %bb.0: # %entry7; CHECK-NEXT:    cvt.s.w %s0, %s08; CHECK-NEXT:    b.l.t (, %s10)9entry:10  %conv = sitofp i8 %a to float11  ret float %conv12}13 14; Function Attrs: norecurse nounwind readnone15define float @s2f(i16 signext %a) {16; CHECK-LABEL: s2f:17; CHECK:       # %bb.0: # %entry18; CHECK-NEXT:    cvt.s.w %s0, %s019; CHECK-NEXT:    b.l.t (, %s10)20entry:21  %conv = sitofp i16 %a to float22  ret float %conv23}24 25; Function Attrs: norecurse nounwind readnone26define float @i2f(i32 %a) {27; CHECK-LABEL: i2f:28; CHECK:       # %bb.0: # %entry29; CHECK-NEXT:    cvt.s.w %s0, %s030; CHECK-NEXT:    b.l.t (, %s10)31entry:32  %conv = sitofp i32 %a to float33  ret float %conv34}35 36; Function Attrs: norecurse nounwind readnone37define float @l2f(i64 %a) {38; CHECK-LABEL: l2f:39; CHECK:       # %bb.0: # %entry40; CHECK-NEXT:    cvt.d.l %s0, %s041; CHECK-NEXT:    cvt.s.d %s0, %s042; CHECK-NEXT:    b.l.t (, %s10)43entry:44  %conv = sitofp i64 %a to float45  ret float %conv46}47 48; Function Attrs: norecurse nounwind readnone49define float @uc2f(i8 zeroext %a) {50; CHECK-LABEL: uc2f:51; CHECK:       # %bb.0: # %entry52; CHECK-NEXT:    cvt.s.w %s0, %s053; CHECK-NEXT:    b.l.t (, %s10)54entry:55  %conv = uitofp i8 %a to float56  ret float %conv57}58 59; Function Attrs: norecurse nounwind readnone60define float @us2f(i16 zeroext %a) {61; CHECK-LABEL: us2f:62; CHECK:       # %bb.0: # %entry63; CHECK-NEXT:    cvt.s.w %s0, %s064; CHECK-NEXT:    b.l.t (, %s10)65entry:66  %conv = uitofp i16 %a to float67  ret float %conv68}69 70; Function Attrs: norecurse nounwind readnone71define float @ui2f(i32 %a) {72; CHECK-LABEL: ui2f:73; CHECK:       # %bb.0: # %entry74; CHECK-NEXT:    and %s0, %s0, (32)075; CHECK-NEXT:    cvt.d.l %s0, %s076; CHECK-NEXT:    cvt.s.d %s0, %s077; CHECK-NEXT:    b.l.t (, %s10)78entry:79  %conv = uitofp i32 %a to float80  ret float %conv81}82 83; Function Attrs: norecurse nounwind readnone84define float @ul2f(i64 %a) {85; CHECK-LABEL: ul2f:86; CHECK:       # %bb.0: # %entry87; CHECK-NEXT:    cvt.d.l %s1, %s088; CHECK-NEXT:    cvt.s.d %s1, %s189; CHECK-NEXT:    srl %s2, %s0, 190; CHECK-NEXT:    and %s3, 1, %s091; CHECK-NEXT:    or %s2, %s3, %s292; CHECK-NEXT:    cvt.d.l %s2, %s293; CHECK-NEXT:    cvt.s.d %s2, %s294; CHECK-NEXT:    fadd.s %s2, %s2, %s295; CHECK-NEXT:    cmov.l.lt %s1, %s2, %s096; CHECK-NEXT:    or %s0, 0, %s197; CHECK-NEXT:    b.l.t (, %s10)98entry:99  %conv = uitofp i64 %a to float100  ret float %conv101}102 103; Function Attrs: norecurse nounwind readnone104define double @c2d(i8 signext %a) {105; CHECK-LABEL: c2d:106; CHECK:       # %bb.0: # %entry107; CHECK-NEXT:    cvt.d.w %s0, %s0108; CHECK-NEXT:    b.l.t (, %s10)109entry:110  %conv = sitofp i8 %a to double111  ret double %conv112}113 114; Function Attrs: norecurse nounwind readnone115define double @s2d(i16 signext %a) {116; CHECK-LABEL: s2d:117; CHECK:       # %bb.0: # %entry118; CHECK-NEXT:    cvt.d.w %s0, %s0119; CHECK-NEXT:    b.l.t (, %s10)120entry:121  %conv = sitofp i16 %a to double122  ret double %conv123}124 125; Function Attrs: norecurse nounwind readnone126define double @i2d(i32 %a) {127; CHECK-LABEL: i2d:128; CHECK:       # %bb.0: # %entry129; CHECK-NEXT:    cvt.d.w %s0, %s0130; CHECK-NEXT:    b.l.t (, %s10)131entry:132  %conv = sitofp i32 %a to double133  ret double %conv134}135 136; Function Attrs: norecurse nounwind readnone137define double @l2d(i64 %a) {138; CHECK-LABEL: l2d:139; CHECK:       # %bb.0: # %entry140; CHECK-NEXT:    cvt.d.l %s0, %s0141; CHECK-NEXT:    b.l.t (, %s10)142entry:143  %conv = sitofp i64 %a to double144  ret double %conv145}146 147; Function Attrs: norecurse nounwind readnone148define double @uc2d(i8 zeroext %a) {149; CHECK-LABEL: uc2d:150; CHECK:       # %bb.0: # %entry151; CHECK-NEXT:    cvt.d.w %s0, %s0152; CHECK-NEXT:    b.l.t (, %s10)153entry:154  %conv = uitofp i8 %a to double155  ret double %conv156}157 158; Function Attrs: norecurse nounwind readnone159define double @us2d(i16 zeroext %a) {160; CHECK-LABEL: us2d:161; CHECK:       # %bb.0: # %entry162; CHECK-NEXT:    cvt.d.w %s0, %s0163; CHECK-NEXT:    b.l.t (, %s10)164entry:165  %conv = uitofp i16 %a to double166  ret double %conv167}168 169; Function Attrs: norecurse nounwind readnone170define double @ui2d(i32 %a) {171; CHECK-LABEL: ui2d:172; CHECK:       # %bb.0: # %entry173; CHECK-NEXT:    and %s0, %s0, (32)0174; CHECK-NEXT:    cvt.d.l %s0, %s0175; CHECK-NEXT:    b.l.t (, %s10)176entry:177  %conv = uitofp i32 %a to double178  ret double %conv179}180 181; Function Attrs: norecurse nounwind readnone182define double @ul2d(i64 %a) {183; CHECK-LABEL: ul2d:184; CHECK:       # %bb.0: # %entry185; CHECK-NEXT:    srl %s1, %s0, 32186; CHECK-NEXT:    lea.sl %s2, 1160773632187; CHECK-NEXT:    or %s1, %s1, %s2188; CHECK-NEXT:    lea %s2, 1048576189; CHECK-NEXT:    lea.sl %s2, -986710016(, %s2)190; CHECK-NEXT:    fadd.d %s1, %s1, %s2191; CHECK-NEXT:    and %s0, %s0, (32)0192; CHECK-NEXT:    lea.sl %s2, 1127219200193; CHECK-NEXT:    or %s0, %s0, %s2194; CHECK-NEXT:    fadd.d %s0, %s0, %s1195; CHECK-NEXT:    b.l.t (, %s10)196entry:197  %conv = uitofp i64 %a to double198  ret double %conv199}200