11943b7f1SSimon Moll; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s 21943b7f1SSimon Moll 31943b7f1SSimon Molldefine signext i32 @i() { 41943b7f1SSimon Moll; CHECK-LABEL: i: 544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 61943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 81943b7f1SSimon Moll ret i32 -2147483648 91943b7f1SSimon Moll} 101943b7f1SSimon Moll 111943b7f1SSimon Molldefine zeroext i32 @ui() { 121943b7f1SSimon Moll; CHECK-LABEL: ui: 1344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 141943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 151943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 1644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 171943b7f1SSimon Moll ret i32 -2147483648 181943b7f1SSimon Moll} 191943b7f1SSimon Moll 201943b7f1SSimon Molldefine i64 @ll() { 211943b7f1SSimon Moll; CHECK-LABEL: ll: 2244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 231943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 2444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 251943b7f1SSimon Moll ret i64 -2147483648 261943b7f1SSimon Moll} 271943b7f1SSimon Moll 281943b7f1SSimon Molldefine i64 @ull() { 291943b7f1SSimon Moll; CHECK-LABEL: ull: 3044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 311943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 321943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 3344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 341943b7f1SSimon Moll ret i64 2147483648 351943b7f1SSimon Moll} 361943b7f1SSimon Moll 371943b7f1SSimon Molldefine signext i8 @d2c(double %x) { 381943b7f1SSimon Moll; CHECK-LABEL: d2c: 3944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 401943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 411943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 4244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 431943b7f1SSimon Moll %r = fptosi double %x to i8 441943b7f1SSimon Moll ret i8 %r 451943b7f1SSimon Moll} 461943b7f1SSimon Moll 471943b7f1SSimon Molldefine zeroext i8 @d2uc(double %x) { 481943b7f1SSimon Moll; CHECK-LABEL: d2uc: 4944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 501943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 511943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 5244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 531943b7f1SSimon Moll %r = fptoui double %x to i8 541943b7f1SSimon Moll ret i8 %r 551943b7f1SSimon Moll} 561943b7f1SSimon Moll 571943b7f1SSimon Molldefine signext i16 @d2s(double %x) { 581943b7f1SSimon Moll; CHECK-LABEL: d2s: 5944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 601943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 611943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 6244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 631943b7f1SSimon Moll %r = fptosi double %x to i16 641943b7f1SSimon Moll ret i16 %r 651943b7f1SSimon Moll} 661943b7f1SSimon Moll 671943b7f1SSimon Molldefine zeroext i16 @d2us(double %x) { 681943b7f1SSimon Moll; CHECK-LABEL: d2us: 6944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 701943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 711943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 7244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 731943b7f1SSimon Moll %r = fptoui double %x to i16 741943b7f1SSimon Moll ret i16 %r 751943b7f1SSimon Moll} 761943b7f1SSimon Moll 771943b7f1SSimon Molldefine signext i32 @d2i(double %x) { 781943b7f1SSimon Moll; CHECK-LABEL: d2i: 7944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 801943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 811943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 8244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 831943b7f1SSimon Moll %r = fptosi double %x to i32 841943b7f1SSimon Moll ret i32 %r 851943b7f1SSimon Moll} 861943b7f1SSimon Moll 871943b7f1SSimon Molldefine zeroext i32 @d2ui(double %x) { 881943b7f1SSimon Moll; CHECK-LABEL: d2ui: 8944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 901943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 911943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 9244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 931943b7f1SSimon Moll %r = fptoui double %x to i32 941943b7f1SSimon Moll ret i32 %r 951943b7f1SSimon Moll} 961943b7f1SSimon Moll 971943b7f1SSimon Molldefine i64 @d2ll(double %x) { 981943b7f1SSimon Moll; CHECK-LABEL: d2ll: 9944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1001943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 10144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1021943b7f1SSimon Moll %r = fptosi double %x to i64 1031943b7f1SSimon Moll ret i64 %r 1041943b7f1SSimon Moll} 1051943b7f1SSimon Moll 1061943b7f1SSimon Molldefine i64 @d2ull(double %x) { 1071943b7f1SSimon Moll; CHECK-LABEL: d2ull: 10844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1091943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s1, 1138753536 1101943b7f1SSimon Moll; CHECK-NEXT: fcmp.d %s2, %s0, %s1 1111943b7f1SSimon Moll; CHECK-NEXT: fsub.d %s1, %s0, %s1 1121943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s1, %s1 1131943b7f1SSimon Moll; CHECK-NEXT: xor %s1, %s1, (1)1 1141943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 1151943b7f1SSimon Moll; CHECK-NEXT: cmov.d.lt %s1, %s0, %s2 1161943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s1 11744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1181943b7f1SSimon Moll %r = fptoui double %x to i64 1191943b7f1SSimon Moll ret i64 %r 1201943b7f1SSimon Moll} 1211943b7f1SSimon Moll 1221943b7f1SSimon Molldefine float @d2f(double %x) { 1231943b7f1SSimon Moll; CHECK-LABEL: d2f: 12444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1251943b7f1SSimon Moll; CHECK-NEXT: cvt.s.d %s0, %s0 12644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1271943b7f1SSimon Moll %r = fptrunc double %x to float 1281943b7f1SSimon Moll ret float %r 1291943b7f1SSimon Moll} 1301943b7f1SSimon Moll 1311943b7f1SSimon Molldefine double @d2d(double returned %0) { 1321943b7f1SSimon Moll; CHECK-LABEL: d2d: 13344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1351943b7f1SSimon Moll ret double %0 1361943b7f1SSimon Moll} 1371943b7f1SSimon Moll 1381943b7f1SSimon Molldefine fp128 @d2q(double) { 1391943b7f1SSimon Moll; CHECK-LABEL: d2q: 14044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1411943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 14244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1431943b7f1SSimon Moll %2 = fpext double %0 to fp128 1441943b7f1SSimon Moll ret fp128 %2 1451943b7f1SSimon Moll} 1461943b7f1SSimon Moll 1471943b7f1SSimon Molldefine signext i8 @q2c(fp128) { 1481943b7f1SSimon Moll; CHECK-LABEL: q2c: 14944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1501943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 1511943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 1521943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 15344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1541943b7f1SSimon Moll %2 = fptosi fp128 %0 to i8 1551943b7f1SSimon Moll ret i8 %2 1561943b7f1SSimon Moll} 1571943b7f1SSimon Moll 1581943b7f1SSimon Molldefine zeroext i8 @q2uc(fp128) { 1591943b7f1SSimon Moll; CHECK-LABEL: q2uc: 16044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1611943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 1621943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 1631943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 16444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1651943b7f1SSimon Moll %2 = fptoui fp128 %0 to i8 1661943b7f1SSimon Moll ret i8 %2 1671943b7f1SSimon Moll} 1681943b7f1SSimon Moll 1691943b7f1SSimon Molldefine signext i16 @q2s(fp128) { 1701943b7f1SSimon Moll; CHECK-LABEL: q2s: 17144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1721943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 1731943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 1741943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 17544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1761943b7f1SSimon Moll %2 = fptosi fp128 %0 to i16 1771943b7f1SSimon Moll ret i16 %2 1781943b7f1SSimon Moll} 1791943b7f1SSimon Moll 1801943b7f1SSimon Molldefine zeroext i16 @q2us(fp128) { 1811943b7f1SSimon Moll; CHECK-LABEL: q2us: 18244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1831943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 1841943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 1851943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 18644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1871943b7f1SSimon Moll %2 = fptoui fp128 %0 to i16 1881943b7f1SSimon Moll ret i16 %2 1891943b7f1SSimon Moll} 1901943b7f1SSimon Moll 1911943b7f1SSimon Molldefine signext i32 @q2i(fp128) { 1921943b7f1SSimon Moll; CHECK-LABEL: q2i: 19344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 1941943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 1951943b7f1SSimon Moll; CHECK-NEXT: cvt.w.d.sx.rz %s0, %s0 1961943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 19744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 1981943b7f1SSimon Moll %2 = fptosi fp128 %0 to i32 1991943b7f1SSimon Moll ret i32 %2 2001943b7f1SSimon Moll} 2011943b7f1SSimon Moll 2021943b7f1SSimon Molldefine zeroext i32 @q2ui(fp128) { 2031943b7f1SSimon Moll; CHECK-LABEL: q2ui: 20444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2051943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 2061943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 2071943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 20844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2091943b7f1SSimon Moll %2 = fptoui fp128 %0 to i32 2101943b7f1SSimon Moll ret i32 %2 2111943b7f1SSimon Moll} 2121943b7f1SSimon Moll 2131943b7f1SSimon Molldefine i64 @q2ll(fp128) { 2141943b7f1SSimon Moll; CHECK-LABEL: q2ll: 21544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2161943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 2171943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 21844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2191943b7f1SSimon Moll %2 = fptosi fp128 %0 to i64 2201943b7f1SSimon Moll ret i64 %2 2211943b7f1SSimon Moll} 2221943b7f1SSimon Moll 2231943b7f1SSimon Molldefine i64 @q2ull(fp128) { 2241943b7f1SSimon Moll; CHECK-LABEL: q2ull: 22544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2261943b7f1SSimon Moll; CHECK-NEXT: lea %s2, .LCPI{{[0-9]+}}_0@lo 2271943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 2281943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s2, .LCPI{{[0-9]+}}_0@hi(, %s2) 2291943b7f1SSimon Moll; CHECK-NEXT: ld %s4, 8(, %s2) 2301943b7f1SSimon Moll; CHECK-NEXT: ld %s5, (, %s2) 2311943b7f1SSimon Moll; CHECK-NEXT: fcmp.q %s3, %s0, %s4 2321943b7f1SSimon Moll; CHECK-NEXT: fsub.q %s4, %s0, %s4 2331943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s2, %s4 2341943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s2, %s2 2351943b7f1SSimon Moll; CHECK-NEXT: xor %s2, %s2, (1)1 2361943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 2371943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 2381943b7f1SSimon Moll; CHECK-NEXT: cmov.d.lt %s2, %s0, %s3 2391943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s2 24044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2411943b7f1SSimon Moll %2 = fptoui fp128 %0 to i64 2421943b7f1SSimon Moll ret i64 %2 2431943b7f1SSimon Moll} 2441943b7f1SSimon Moll 2451943b7f1SSimon Molldefine float @q2f(fp128) { 2461943b7f1SSimon Moll; CHECK-LABEL: q2f: 24744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2481943b7f1SSimon Moll; CHECK-NEXT: cvt.s.q %s0, %s0 24944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2501943b7f1SSimon Moll %2 = fptrunc fp128 %0 to float 2511943b7f1SSimon Moll ret float %2 2521943b7f1SSimon Moll} 2531943b7f1SSimon Moll 2541943b7f1SSimon Molldefine double @q2d(fp128) { 2551943b7f1SSimon Moll; CHECK-LABEL: q2d: 25644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2571943b7f1SSimon Moll; CHECK-NEXT: cvt.d.q %s0, %s0 25844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2591943b7f1SSimon Moll %2 = fptrunc fp128 %0 to double 2601943b7f1SSimon Moll ret double %2 2611943b7f1SSimon Moll} 2621943b7f1SSimon Moll 2631943b7f1SSimon Molldefine fp128 @q2q(fp128 returned) { 2641943b7f1SSimon Moll; CHECK-LABEL: q2q: 26544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 26644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2671943b7f1SSimon Moll ret fp128 %0 2681943b7f1SSimon Moll} 2691943b7f1SSimon Moll 2701943b7f1SSimon Molldefine signext i8 @f2c(float %x) { 2711943b7f1SSimon Moll; CHECK-LABEL: f2c: 27244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2731943b7f1SSimon Moll; CHECK-NEXT: cvt.w.s.sx.rz %s0, %s0 2741943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 27544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2761943b7f1SSimon Moll %r = fptosi float %x to i8 2771943b7f1SSimon Moll ret i8 %r 2781943b7f1SSimon Moll} 2791943b7f1SSimon Moll 2801943b7f1SSimon Molldefine zeroext i8 @f2uc(float %x) { 2811943b7f1SSimon Moll; CHECK-LABEL: f2uc: 28244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2831943b7f1SSimon Moll; CHECK-NEXT: cvt.w.s.sx.rz %s0, %s0 2841943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 28544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2861943b7f1SSimon Moll %r = fptoui float %x to i8 2871943b7f1SSimon Moll ret i8 %r 2881943b7f1SSimon Moll} 2891943b7f1SSimon Moll 2901943b7f1SSimon Molldefine signext i16 @f2s(float %x) { 2911943b7f1SSimon Moll; CHECK-LABEL: f2s: 29244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 2931943b7f1SSimon Moll; CHECK-NEXT: cvt.w.s.sx.rz %s0, %s0 2941943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 29544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 2961943b7f1SSimon Moll %r = fptosi float %x to i16 2971943b7f1SSimon Moll ret i16 %r 2981943b7f1SSimon Moll} 2991943b7f1SSimon Moll 3001943b7f1SSimon Molldefine zeroext i16 @f2us(float %x) { 3011943b7f1SSimon Moll; CHECK-LABEL: f2us: 30244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3031943b7f1SSimon Moll; CHECK-NEXT: cvt.w.s.sx.rz %s0, %s0 3041943b7f1SSimon Moll; CHECK-NEXT: adds.w.zx %s0, %s0, (0)1 30544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3061943b7f1SSimon Moll %r = fptoui float %x to i16 3071943b7f1SSimon Moll ret i16 %r 3081943b7f1SSimon Moll} 3091943b7f1SSimon Moll 3101943b7f1SSimon Molldefine signext i32 @f2i(float %x) { 3111943b7f1SSimon Moll; CHECK-LABEL: f2i: 31244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3131943b7f1SSimon Moll; CHECK-NEXT: cvt.w.s.sx.rz %s0, %s0 3141943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 31544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3161943b7f1SSimon Moll %r = fptosi float %x to i32 3171943b7f1SSimon Moll ret i32 %r 3181943b7f1SSimon Moll} 3191943b7f1SSimon Moll 3201943b7f1SSimon Molldefine zeroext i32 @f2ui(float %x) { 3211943b7f1SSimon Moll; CHECK-LABEL: f2ui: 32244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3231943b7f1SSimon Moll; CHECK-NEXT: cvt.d.s %s0, %s0 3241943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 3251943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 32644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3271943b7f1SSimon Moll %r = fptoui float %x to i32 3281943b7f1SSimon Moll ret i32 %r 3291943b7f1SSimon Moll} 3301943b7f1SSimon Moll 3311943b7f1SSimon Molldefine i64 @f2ll(float %x) { 3321943b7f1SSimon Moll; CHECK-LABEL: f2ll: 33344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3341943b7f1SSimon Moll; CHECK-NEXT: cvt.d.s %s0, %s0 3351943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 33644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3371943b7f1SSimon Moll %r = fptosi float %x to i64 3381943b7f1SSimon Moll ret i64 %r 3391943b7f1SSimon Moll} 3401943b7f1SSimon Moll 3411943b7f1SSimon Molldefine i64 @f2ull(float %x) { 3421943b7f1SSimon Moll; CHECK-LABEL: f2ull: 34344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3441943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s1, 1593835520 3451943b7f1SSimon Moll; CHECK-NEXT: fcmp.s %s2, %s0, %s1 3461943b7f1SSimon Moll; CHECK-NEXT: fsub.s %s1, %s0, %s1 3471943b7f1SSimon Moll; CHECK-NEXT: cvt.d.s %s1, %s1 3481943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s1, %s1 3491943b7f1SSimon Moll; CHECK-NEXT: xor %s1, %s1, (1)1 3501943b7f1SSimon Moll; CHECK-NEXT: cvt.d.s %s0, %s0 3511943b7f1SSimon Moll; CHECK-NEXT: cvt.l.d.rz %s0, %s0 3521943b7f1SSimon Moll; CHECK-NEXT: cmov.s.lt %s1, %s0, %s2 3531943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s1 35444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3551943b7f1SSimon Moll %r = fptoui float %x to i64 3561943b7f1SSimon Moll ret i64 %r 3571943b7f1SSimon Moll} 3581943b7f1SSimon Moll 3591943b7f1SSimon Molldefine float @f2f(float returned %0) { 3601943b7f1SSimon Moll; CHECK-LABEL: f2f: 36144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 36244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3631943b7f1SSimon Moll ret float %0 3641943b7f1SSimon Moll} 3651943b7f1SSimon Moll 3661943b7f1SSimon Molldefine double @f2d(float %x) { 3671943b7f1SSimon Moll; CHECK-LABEL: f2d: 36844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3691943b7f1SSimon Moll; CHECK-NEXT: cvt.d.s %s0, %s0 37044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3711943b7f1SSimon Moll %r = fpext float %x to double 3721943b7f1SSimon Moll ret double %r 3731943b7f1SSimon Moll} 3741943b7f1SSimon Moll 3751943b7f1SSimon Molldefine fp128 @f2q(float) { 3761943b7f1SSimon Moll; CHECK-LABEL: f2q: 37744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3781943b7f1SSimon Moll; CHECK-NEXT: cvt.q.s %s0, %s0 37944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3801943b7f1SSimon Moll %2 = fpext float %0 to fp128 3811943b7f1SSimon Moll ret fp128 %2 3821943b7f1SSimon Moll} 3831943b7f1SSimon Moll 3841943b7f1SSimon Molldefine signext i8 @ll2c(i64 %0) { 3851943b7f1SSimon Moll; CHECK-LABEL: ll2c: 38644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3871943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 3881943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 38944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3901943b7f1SSimon Moll %2 = trunc i64 %0 to i8 3911943b7f1SSimon Moll ret i8 %2 3921943b7f1SSimon Moll} 3931943b7f1SSimon Moll 3941943b7f1SSimon Molldefine zeroext i8 @ll2uc(i64 %0) { 3951943b7f1SSimon Moll; CHECK-LABEL: ll2uc: 39644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 3971943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 39844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 3991943b7f1SSimon Moll %2 = trunc i64 %0 to i8 4001943b7f1SSimon Moll ret i8 %2 4011943b7f1SSimon Moll} 4021943b7f1SSimon Moll 4031943b7f1SSimon Molldefine signext i16 @ll2s(i64 %0) { 4041943b7f1SSimon Moll; CHECK-LABEL: ll2s: 40544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4061943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 4071943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 40844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4091943b7f1SSimon Moll %2 = trunc i64 %0 to i16 4101943b7f1SSimon Moll ret i16 %2 4111943b7f1SSimon Moll} 4121943b7f1SSimon Moll 4131943b7f1SSimon Molldefine zeroext i16 @ll2us(i64 %0) { 4141943b7f1SSimon Moll; CHECK-LABEL: ll2us: 41544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4161943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 41744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4181943b7f1SSimon Moll %2 = trunc i64 %0 to i16 4191943b7f1SSimon Moll ret i16 %2 4201943b7f1SSimon Moll} 4211943b7f1SSimon Moll 4221943b7f1SSimon Molldefine signext i32 @ll2i(i64 %0) { 4231943b7f1SSimon Moll; CHECK-LABEL: ll2i: 42444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4251943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 42644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4271943b7f1SSimon Moll %2 = trunc i64 %0 to i32 4281943b7f1SSimon Moll ret i32 %2 4291943b7f1SSimon Moll} 4301943b7f1SSimon Moll 4311943b7f1SSimon Molldefine zeroext i32 @ll2ui(i64 %0) { 4321943b7f1SSimon Moll; CHECK-LABEL: ll2ui: 43344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4341943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 43544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4361943b7f1SSimon Moll %2 = trunc i64 %0 to i32 4371943b7f1SSimon Moll ret i32 %2 4381943b7f1SSimon Moll} 4391943b7f1SSimon Moll 4401943b7f1SSimon Molldefine i64 @ll2ll(i64 returned %0) { 4411943b7f1SSimon Moll; CHECK-LABEL: ll2ll: 44244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 44344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4441943b7f1SSimon Moll ret i64 %0 4451943b7f1SSimon Moll} 4461943b7f1SSimon Moll 4471943b7f1SSimon Molldefine i64 @ll2ull(i64 returned %0) { 4481943b7f1SSimon Moll; CHECK-LABEL: ll2ull: 44944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 45044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4511943b7f1SSimon Moll ret i64 %0 4521943b7f1SSimon Moll} 4531943b7f1SSimon Moll 4541943b7f1SSimon Molldefine float @ll2f(i64 %x) { 4551943b7f1SSimon Moll; CHECK-LABEL: ll2f: 45644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4571943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 4581943b7f1SSimon Moll; CHECK-NEXT: cvt.s.d %s0, %s0 45944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4601943b7f1SSimon Moll %r = sitofp i64 %x to float 4611943b7f1SSimon Moll ret float %r 4621943b7f1SSimon Moll} 4631943b7f1SSimon Moll 4641943b7f1SSimon Molldefine double @ll2d(i64 %x) { 4651943b7f1SSimon Moll; CHECK-LABEL: ll2d: 46644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4671943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 46844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4691943b7f1SSimon Moll %r = sitofp i64 %x to double 4701943b7f1SSimon Moll ret double %r 4711943b7f1SSimon Moll} 4721943b7f1SSimon Moll 4731943b7f1SSimon Molldefine fp128 @ll2q(i64) { 4741943b7f1SSimon Moll; CHECK-LABEL: ll2q: 47544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4761943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 4771943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 47844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4791943b7f1SSimon Moll %2 = sitofp i64 %0 to fp128 4801943b7f1SSimon Moll ret fp128 %2 4811943b7f1SSimon Moll} 4821943b7f1SSimon Moll 4831943b7f1SSimon Molldefine signext i8 @ull2c(i64 %0) { 4841943b7f1SSimon Moll; CHECK-LABEL: ull2c: 48544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4861943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 4871943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 48844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4891943b7f1SSimon Moll %2 = trunc i64 %0 to i8 4901943b7f1SSimon Moll ret i8 %2 4911943b7f1SSimon Moll} 4921943b7f1SSimon Moll 4931943b7f1SSimon Molldefine zeroext i8 @ull2uc(i64 %0) { 4941943b7f1SSimon Moll; CHECK-LABEL: ull2uc: 49544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 4961943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 49744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 4981943b7f1SSimon Moll %2 = trunc i64 %0 to i8 4991943b7f1SSimon Moll ret i8 %2 5001943b7f1SSimon Moll} 5011943b7f1SSimon Moll 5021943b7f1SSimon Molldefine signext i16 @ull2s(i64 %0) { 5031943b7f1SSimon Moll; CHECK-LABEL: ull2s: 50444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 5051943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 5061943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 50744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5081943b7f1SSimon Moll %2 = trunc i64 %0 to i16 5091943b7f1SSimon Moll ret i16 %2 5101943b7f1SSimon Moll} 5111943b7f1SSimon Moll 5121943b7f1SSimon Molldefine zeroext i16 @ull2us(i64 %0) { 5131943b7f1SSimon Moll; CHECK-LABEL: ull2us: 51444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 5151943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 51644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5171943b7f1SSimon Moll %2 = trunc i64 %0 to i16 5181943b7f1SSimon Moll ret i16 %2 5191943b7f1SSimon Moll} 5201943b7f1SSimon Moll 5211943b7f1SSimon Molldefine signext i32 @ull2i(i64 %0) { 5221943b7f1SSimon Moll; CHECK-LABEL: ull2i: 52344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 5241943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 52544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5261943b7f1SSimon Moll %2 = trunc i64 %0 to i32 5271943b7f1SSimon Moll ret i32 %2 5281943b7f1SSimon Moll} 5291943b7f1SSimon Moll 5301943b7f1SSimon Molldefine zeroext i32 @ull2ui(i64 %0) { 5311943b7f1SSimon Moll; CHECK-LABEL: ull2ui: 53244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 5331943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 53444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5351943b7f1SSimon Moll %2 = trunc i64 %0 to i32 5361943b7f1SSimon Moll ret i32 %2 5371943b7f1SSimon Moll} 5381943b7f1SSimon Moll 5391943b7f1SSimon Molldefine i64 @ull2ll(i64 returned %0) { 5401943b7f1SSimon Moll; CHECK-LABEL: ull2ll: 54144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 54244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5431943b7f1SSimon Moll ret i64 %0 5441943b7f1SSimon Moll} 5451943b7f1SSimon Moll 5461943b7f1SSimon Molldefine i64 @ull2ull(i64 returned %0) { 5471943b7f1SSimon Moll; CHECK-LABEL: ull2ull: 54844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 54944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5501943b7f1SSimon Moll ret i64 %0 5511943b7f1SSimon Moll} 5521943b7f1SSimon Moll 5531943b7f1SSimon Molldefine float @ull2f(i64 %x) { 5541943b7f1SSimon Moll; CHECK-LABEL: ull2f: 55544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 5561943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s1, %s0 5571943b7f1SSimon Moll; CHECK-NEXT: cvt.s.d %s1, %s1 55833dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: srl %s2, %s0, 1 55933dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: and %s3, 1, %s0 56033dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: or %s2, %s3, %s2 56133dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: cvt.d.l %s2, %s2 56233dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: cvt.s.d %s2, %s2 56333dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: fadd.s %s2, %s2, %s2 56433dda45dSKazushi (Jam) Marukawa; CHECK-NEXT: cmov.l.lt %s1, %s2, %s0 5651943b7f1SSimon Moll; CHECK-NEXT: or %s0, 0, %s1 56644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 5671943b7f1SSimon Moll %r = uitofp i64 %x to float 5681943b7f1SSimon Moll ret float %r 5691943b7f1SSimon Moll} 5701943b7f1SSimon Moll 571*b5600c6fSMichael Marjiehdefine float @ull2f_nneg(i64 %x) { 572*b5600c6fSMichael Marjieh; CHECK-LABEL: ull2f_nneg: 573*b5600c6fSMichael Marjieh; CHECK: # %bb.0: 574*b5600c6fSMichael Marjieh; CHECK-NEXT: cvt.d.l %s0, %s0 575*b5600c6fSMichael Marjieh; CHECK-NEXT: cvt.s.d %s0, %s0 576*b5600c6fSMichael Marjieh; CHECK-NEXT: b.l.t (, %s10) 577*b5600c6fSMichael Marjieh %r = uitofp nneg i64 %x to float 578*b5600c6fSMichael Marjieh ret float %r 579*b5600c6fSMichael Marjieh} 580*b5600c6fSMichael Marjieh 581*b5600c6fSMichael Marjiehdefine float @ull2f_strict(i32 %x) { 582*b5600c6fSMichael Marjieh; CHECK-LABEL: ull2f_strict: 583*b5600c6fSMichael Marjieh; CHECK: # %bb.0: 584*b5600c6fSMichael Marjieh; CHECK-NEXT: adds.l %s11, -16, %s11 585*b5600c6fSMichael Marjieh; CHECK-NEXT: brge.l.t %s11, %s8, .LBB58_2 586*b5600c6fSMichael Marjieh; CHECK-NEXT: # %bb.1: 587*b5600c6fSMichael Marjieh; CHECK-NEXT: ld %s61, 24(, %s14) 588*b5600c6fSMichael Marjieh; CHECK-NEXT: or %s62, 0, %s0 589*b5600c6fSMichael Marjieh; CHECK-NEXT: lea %s63, 315 590*b5600c6fSMichael Marjieh; CHECK-NEXT: shm.l %s63, (%s61) 591*b5600c6fSMichael Marjieh; CHECK-NEXT: shm.l %s8, 8(%s61) 592*b5600c6fSMichael Marjieh; CHECK-NEXT: shm.l %s11, 16(%s61) 593*b5600c6fSMichael Marjieh; CHECK-NEXT: monc 594*b5600c6fSMichael Marjieh; CHECK-NEXT: or %s0, 0, %s62 595*b5600c6fSMichael Marjieh; CHECK-NEXT: .LBB58_2: 596*b5600c6fSMichael Marjieh; CHECK-NEXT: lea %s1, 1127219200 597*b5600c6fSMichael Marjieh; CHECK-NEXT: stl %s1, 12(, %s11) 598*b5600c6fSMichael Marjieh; CHECK-NEXT: stl %s0, 8(, %s11) 599*b5600c6fSMichael Marjieh; CHECK-NEXT: ld %s0, 8(, %s11) 600*b5600c6fSMichael Marjieh; CHECK-NEXT: lea.sl %s1, 1127219200 601*b5600c6fSMichael Marjieh; CHECK-NEXT: fsub.d %s0, %s0, %s1 602*b5600c6fSMichael Marjieh; CHECK-NEXT: cvt.s.d %s0, %s0 603*b5600c6fSMichael Marjieh; CHECK-NEXT: adds.l %s11, 16, %s11 604*b5600c6fSMichael Marjieh; CHECK-NEXT: b.l.t (, %s10) 605*b5600c6fSMichael Marjieh %val = call float @llvm.experimental.constrained.uitofp.f32.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") 606*b5600c6fSMichael Marjieh ret float %val 607*b5600c6fSMichael Marjieh} 608*b5600c6fSMichael Marjieh 6091943b7f1SSimon Molldefine double @ull2d(i64 %x) { 6101943b7f1SSimon Moll; CHECK-LABEL: ull2d: 61144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6121943b7f1SSimon Moll; CHECK-NEXT: srl %s1, %s0, 32 6131943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s2, 1160773632 6141943b7f1SSimon Moll; CHECK-NEXT: or %s1, %s1, %s2 6151943b7f1SSimon Moll; CHECK-NEXT: lea %s2, 1048576 6161943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s2, -986710016(, %s2) 6171943b7f1SSimon Moll; CHECK-NEXT: fadd.d %s1, %s1, %s2 6181943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 6191943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s2, 1127219200 6201943b7f1SSimon Moll; CHECK-NEXT: or %s0, %s0, %s2 6211943b7f1SSimon Moll; CHECK-NEXT: fadd.d %s0, %s0, %s1 62244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6231943b7f1SSimon Moll %r = uitofp i64 %x to double 6241943b7f1SSimon Moll ret double %r 6251943b7f1SSimon Moll} 6261943b7f1SSimon Moll 6271943b7f1SSimon Molldefine fp128 @ull2q(i64) { 6281943b7f1SSimon Moll; CHECK-LABEL: ull2q: 62944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6301943b7f1SSimon Moll; CHECK-NEXT: srl %s1, %s0, 61 6311943b7f1SSimon Moll; CHECK-NEXT: and %s1, 4, %s1 6321943b7f1SSimon Moll; CHECK-NEXT: lea %s2, .LCPI{{[0-9]+}}_0@lo 6331943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 6341943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s2, .LCPI{{[0-9]+}}_0@hi(, %s2) 6351943b7f1SSimon Moll; CHECK-NEXT: ldu %s1, (%s1, %s2) 6361943b7f1SSimon Moll; CHECK-NEXT: cvt.q.s %s2, %s1 6371943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 6381943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 6391943b7f1SSimon Moll; CHECK-NEXT: fadd.q %s0, %s0, %s2 64044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6411943b7f1SSimon Moll %2 = uitofp i64 %0 to fp128 6421943b7f1SSimon Moll ret fp128 %2 6431943b7f1SSimon Moll} 6441943b7f1SSimon Moll 6451943b7f1SSimon Molldefine signext i8 @i2c(i32 signext %0) { 6461943b7f1SSimon Moll; CHECK-LABEL: i2c: 64744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6481943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 6491943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 65044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6511943b7f1SSimon Moll %2 = trunc i32 %0 to i8 6521943b7f1SSimon Moll ret i8 %2 6531943b7f1SSimon Moll} 6541943b7f1SSimon Moll 6551943b7f1SSimon Molldefine zeroext i8 @i2uc(i32 signext %0) { 6561943b7f1SSimon Moll; CHECK-LABEL: i2uc: 65744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6581943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 65944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6601943b7f1SSimon Moll %2 = trunc i32 %0 to i8 6611943b7f1SSimon Moll ret i8 %2 6621943b7f1SSimon Moll} 6631943b7f1SSimon Moll 6641943b7f1SSimon Molldefine signext i16 @i2s(i32 signext %0) { 6651943b7f1SSimon Moll; CHECK-LABEL: i2s: 66644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6671943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 6681943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 66944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6701943b7f1SSimon Moll %2 = trunc i32 %0 to i16 6711943b7f1SSimon Moll ret i16 %2 6721943b7f1SSimon Moll} 6731943b7f1SSimon Moll 6741943b7f1SSimon Molldefine zeroext i16 @i2us(i32 signext %0) { 6751943b7f1SSimon Moll; CHECK-LABEL: i2us: 67644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6771943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 67844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6791943b7f1SSimon Moll %2 = trunc i32 %0 to i16 6801943b7f1SSimon Moll ret i16 %2 6811943b7f1SSimon Moll} 6821943b7f1SSimon Moll 6831943b7f1SSimon Molldefine signext i32 @i2i(i32 signext returned %0) { 6841943b7f1SSimon Moll; CHECK-LABEL: i2i: 68544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 68644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6871943b7f1SSimon Moll ret i32 %0 6881943b7f1SSimon Moll} 6891943b7f1SSimon Moll 6901943b7f1SSimon Molldefine zeroext i32 @i2ui(i32 signext returned %0) { 6911943b7f1SSimon Moll; CHECK-LABEL: i2ui: 69244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 6931943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 69444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 6951943b7f1SSimon Moll ret i32 %0 6961943b7f1SSimon Moll} 6971943b7f1SSimon Moll 6981943b7f1SSimon Molldefine i64 @i2ll(i32 signext %0) { 6991943b7f1SSimon Moll; CHECK-LABEL: i2ll: 70044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 70144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7021943b7f1SSimon Moll %2 = sext i32 %0 to i64 7031943b7f1SSimon Moll ret i64 %2 7041943b7f1SSimon Moll} 7051943b7f1SSimon Moll 7061943b7f1SSimon Molldefine i64 @i2ull(i32 signext %0) { 7071943b7f1SSimon Moll; CHECK-LABEL: i2ull: 70844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 70944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7101943b7f1SSimon Moll %2 = sext i32 %0 to i64 7111943b7f1SSimon Moll ret i64 %2 7121943b7f1SSimon Moll} 7131943b7f1SSimon Moll 7141943b7f1SSimon Molldefine float @i2f(i32 signext %x) { 7151943b7f1SSimon Moll; CHECK-LABEL: i2f: 71644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7171943b7f1SSimon Moll; CHECK-NEXT: cvt.s.w %s0, %s0 71844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7191943b7f1SSimon Moll %r = sitofp i32 %x to float 7201943b7f1SSimon Moll ret float %r 7211943b7f1SSimon Moll} 7221943b7f1SSimon Moll 7231943b7f1SSimon Molldefine double @i2d(i32 signext %x) { 7241943b7f1SSimon Moll; CHECK-LABEL: i2d: 72544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7261943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 72744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7281943b7f1SSimon Moll %r = sitofp i32 %x to double 7291943b7f1SSimon Moll ret double %r 7301943b7f1SSimon Moll} 7311943b7f1SSimon Moll 7321943b7f1SSimon Molldefine fp128 @i2q(i32 signext %x) { 7331943b7f1SSimon Moll; CHECK-LABEL: i2q: 73444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7351943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 7361943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 73744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7381943b7f1SSimon Moll %r = sitofp i32 %x to fp128 7391943b7f1SSimon Moll ret fp128 %r 7401943b7f1SSimon Moll} 7411943b7f1SSimon Moll 7421943b7f1SSimon Molldefine signext i8 @ui2c(i32 zeroext %0) { 7431943b7f1SSimon Moll; CHECK-LABEL: ui2c: 74444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7451943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 7461943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 74744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7481943b7f1SSimon Moll %2 = trunc i32 %0 to i8 7491943b7f1SSimon Moll ret i8 %2 7501943b7f1SSimon Moll} 7511943b7f1SSimon Moll 7521943b7f1SSimon Molldefine zeroext i8 @ui2uc(i32 zeroext %0) { 7531943b7f1SSimon Moll; CHECK-LABEL: ui2uc: 75444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7551943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 75644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7571943b7f1SSimon Moll %2 = trunc i32 %0 to i8 7581943b7f1SSimon Moll ret i8 %2 7591943b7f1SSimon Moll} 7601943b7f1SSimon Moll 7611943b7f1SSimon Molldefine signext i16 @ui2s(i32 zeroext %0) { 7621943b7f1SSimon Moll; CHECK-LABEL: ui2s: 76344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7641943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 7651943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 76644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7671943b7f1SSimon Moll %2 = trunc i32 %0 to i16 7681943b7f1SSimon Moll ret i16 %2 7691943b7f1SSimon Moll} 7701943b7f1SSimon Moll 7711943b7f1SSimon Molldefine zeroext i16 @ui2us(i32 zeroext %0) { 7721943b7f1SSimon Moll; CHECK-LABEL: ui2us: 77344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7741943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 77544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7761943b7f1SSimon Moll %2 = trunc i32 %0 to i16 7771943b7f1SSimon Moll ret i16 %2 7781943b7f1SSimon Moll} 7791943b7f1SSimon Moll 7801943b7f1SSimon Molldefine signext i32 @ui2i(i32 zeroext returned %0) { 7811943b7f1SSimon Moll; CHECK-LABEL: ui2i: 78244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 7831943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 78444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7851943b7f1SSimon Moll ret i32 %0 7861943b7f1SSimon Moll} 7871943b7f1SSimon Moll 7881943b7f1SSimon Molldefine zeroext i32 @ui2ui(i32 zeroext returned %0) { 7891943b7f1SSimon Moll; CHECK-LABEL: ui2ui: 79044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 79144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7921943b7f1SSimon Moll ret i32 %0 7931943b7f1SSimon Moll} 7941943b7f1SSimon Moll 7951943b7f1SSimon Molldefine i64 @ui2ll(i32 zeroext %0) { 7961943b7f1SSimon Moll; CHECK-LABEL: ui2ll: 79744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 79844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 7991943b7f1SSimon Moll %2 = zext i32 %0 to i64 8001943b7f1SSimon Moll ret i64 %2 8011943b7f1SSimon Moll} 8021943b7f1SSimon Moll 8031943b7f1SSimon Molldefine i64 @ui2ull(i32 zeroext %0) { 8041943b7f1SSimon Moll; CHECK-LABEL: ui2ull: 80544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 80644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8071943b7f1SSimon Moll %2 = zext i32 %0 to i64 8081943b7f1SSimon Moll ret i64 %2 8091943b7f1SSimon Moll} 8101943b7f1SSimon Moll 8111943b7f1SSimon Molldefine float @ui2f(i32 zeroext %x) { 8121943b7f1SSimon Moll; CHECK-LABEL: ui2f: 81344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8141943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 8151943b7f1SSimon Moll; CHECK-NEXT: cvt.s.d %s0, %s0 81644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8171943b7f1SSimon Moll %r = uitofp i32 %x to float 8181943b7f1SSimon Moll ret float %r 8191943b7f1SSimon Moll} 8201943b7f1SSimon Moll 8211943b7f1SSimon Molldefine double @ui2d(i32 zeroext %x) { 8221943b7f1SSimon Moll; CHECK-LABEL: ui2d: 82344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8241943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 82544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8261943b7f1SSimon Moll %r = uitofp i32 %x to double 8271943b7f1SSimon Moll ret double %r 8281943b7f1SSimon Moll} 8291943b7f1SSimon Moll 8301943b7f1SSimon Molldefine fp128 @ui2q(i32 zeroext %0) { 8311943b7f1SSimon Moll; CHECK-LABEL: ui2q: 83244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8331943b7f1SSimon Moll; CHECK-NEXT: cvt.d.l %s0, %s0 8341943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 83544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8361943b7f1SSimon Moll %2 = uitofp i32 %0 to fp128 8371943b7f1SSimon Moll ret fp128 %2 8381943b7f1SSimon Moll} 8391943b7f1SSimon Moll 8401943b7f1SSimon Molldefine signext i8 @s2c(i16 signext %0) { 8411943b7f1SSimon Moll; CHECK-LABEL: s2c: 84244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8431943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 8441943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 84544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8461943b7f1SSimon Moll %2 = trunc i16 %0 to i8 8471943b7f1SSimon Moll ret i8 %2 8481943b7f1SSimon Moll} 8491943b7f1SSimon Moll 8501943b7f1SSimon Molldefine zeroext i8 @s2uc(i16 signext %0) { 8511943b7f1SSimon Moll; CHECK-LABEL: s2uc: 85244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8531943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 85444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8551943b7f1SSimon Moll %2 = trunc i16 %0 to i8 8561943b7f1SSimon Moll ret i8 %2 8571943b7f1SSimon Moll} 8581943b7f1SSimon Moll 8591943b7f1SSimon Molldefine signext i16 @s2s(i16 returned signext %0) { 8601943b7f1SSimon Moll; CHECK-LABEL: s2s: 86144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 86244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8631943b7f1SSimon Moll ret i16 %0 8641943b7f1SSimon Moll} 8651943b7f1SSimon Moll 8661943b7f1SSimon Molldefine zeroext i16 @s2us(i16 returned signext %0) { 8671943b7f1SSimon Moll; CHECK-LABEL: s2us: 86844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8691943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 87044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8711943b7f1SSimon Moll ret i16 %0 8721943b7f1SSimon Moll} 8731943b7f1SSimon Moll 8741943b7f1SSimon Molldefine signext i32 @s2i(i16 signext %0) { 8751943b7f1SSimon Moll; CHECK-LABEL: s2i: 87644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 87744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8781943b7f1SSimon Moll %2 = sext i16 %0 to i32 8791943b7f1SSimon Moll ret i32 %2 8801943b7f1SSimon Moll} 8811943b7f1SSimon Moll 8821943b7f1SSimon Molldefine zeroext i32 @s2ui(i16 signext %0) { 8831943b7f1SSimon Moll; CHECK-LABEL: s2ui: 88444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 8851943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 88644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8871943b7f1SSimon Moll %2 = sext i16 %0 to i32 8881943b7f1SSimon Moll ret i32 %2 8891943b7f1SSimon Moll} 8901943b7f1SSimon Moll 8911943b7f1SSimon Molldefine i64 @s2ll(i16 signext %0) { 8921943b7f1SSimon Moll; CHECK-LABEL: s2ll: 89344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 89444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 8951943b7f1SSimon Moll %2 = sext i16 %0 to i64 8961943b7f1SSimon Moll ret i64 %2 8971943b7f1SSimon Moll} 8981943b7f1SSimon Moll 8991943b7f1SSimon Molldefine i64 @s2ull(i16 signext %0) { 9001943b7f1SSimon Moll; CHECK-LABEL: s2ull: 90144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 90244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9031943b7f1SSimon Moll %2 = sext i16 %0 to i64 9041943b7f1SSimon Moll ret i64 %2 9051943b7f1SSimon Moll} 9061943b7f1SSimon Moll 9071943b7f1SSimon Molldefine float @s2f(i16 signext %x) { 9081943b7f1SSimon Moll; CHECK-LABEL: s2f: 90944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9101943b7f1SSimon Moll; CHECK-NEXT: cvt.s.w %s0, %s0 91144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9121943b7f1SSimon Moll %r = sitofp i16 %x to float 9131943b7f1SSimon Moll ret float %r 9141943b7f1SSimon Moll} 9151943b7f1SSimon Moll 9161943b7f1SSimon Molldefine double @s2d(i16 signext %x) { 9171943b7f1SSimon Moll; CHECK-LABEL: s2d: 91844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9191943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 92044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9211943b7f1SSimon Moll %r = sitofp i16 %x to double 9221943b7f1SSimon Moll ret double %r 9231943b7f1SSimon Moll} 9241943b7f1SSimon Moll 9251943b7f1SSimon Molldefine fp128 @s2q(i16 signext) { 9261943b7f1SSimon Moll; CHECK-LABEL: s2q: 92744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9281943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 9291943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 93044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9311943b7f1SSimon Moll %2 = sitofp i16 %0 to fp128 9321943b7f1SSimon Moll ret fp128 %2 9331943b7f1SSimon Moll} 9341943b7f1SSimon Moll 9351943b7f1SSimon Molldefine signext i8 @us2c(i16 zeroext %0) { 9361943b7f1SSimon Moll; CHECK-LABEL: us2c: 93744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9381943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 9391943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 94044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9411943b7f1SSimon Moll %2 = trunc i16 %0 to i8 9421943b7f1SSimon Moll ret i8 %2 9431943b7f1SSimon Moll} 9441943b7f1SSimon Moll 9451943b7f1SSimon Molldefine zeroext i8 @us2uc(i16 zeroext %0) { 9461943b7f1SSimon Moll; CHECK-LABEL: us2uc: 94744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9481943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 94944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9501943b7f1SSimon Moll %2 = trunc i16 %0 to i8 9511943b7f1SSimon Moll ret i8 %2 9521943b7f1SSimon Moll} 9531943b7f1SSimon Moll 9541943b7f1SSimon Molldefine signext i16 @us2s(i16 returned zeroext %0) { 9551943b7f1SSimon Moll; CHECK-LABEL: us2s: 95644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 9571943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 9581943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 95944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9601943b7f1SSimon Moll ret i16 %0 9611943b7f1SSimon Moll} 9621943b7f1SSimon Moll 9631943b7f1SSimon Molldefine zeroext i16 @us2us(i16 returned zeroext %0) { 9641943b7f1SSimon Moll; CHECK-LABEL: us2us: 96544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 96644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9671943b7f1SSimon Moll ret i16 %0 9681943b7f1SSimon Moll} 9691943b7f1SSimon Moll 9701943b7f1SSimon Molldefine signext i32 @us2i(i16 zeroext %0) { 9711943b7f1SSimon Moll; CHECK-LABEL: us2i: 97244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 97344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9741943b7f1SSimon Moll %2 = zext i16 %0 to i32 9751943b7f1SSimon Moll ret i32 %2 9761943b7f1SSimon Moll} 9771943b7f1SSimon Moll 9781943b7f1SSimon Molldefine zeroext i32 @us2ui(i16 zeroext %0) { 9791943b7f1SSimon Moll; CHECK-LABEL: us2ui: 98044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 98144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9821943b7f1SSimon Moll %2 = zext i16 %0 to i32 9831943b7f1SSimon Moll ret i32 %2 9841943b7f1SSimon Moll} 9851943b7f1SSimon Moll 9861943b7f1SSimon Molldefine i64 @us2ll(i16 zeroext %0) { 9871943b7f1SSimon Moll; CHECK-LABEL: us2ll: 98844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 98944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9901943b7f1SSimon Moll %2 = zext i16 %0 to i64 9911943b7f1SSimon Moll ret i64 %2 9921943b7f1SSimon Moll} 9931943b7f1SSimon Moll 9941943b7f1SSimon Molldefine i64 @us2ull(i16 zeroext %0) { 9951943b7f1SSimon Moll; CHECK-LABEL: us2ull: 99644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 99744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 9981943b7f1SSimon Moll %2 = zext i16 %0 to i64 9991943b7f1SSimon Moll ret i64 %2 10001943b7f1SSimon Moll} 10011943b7f1SSimon Moll 10021943b7f1SSimon Molldefine float @us2f(i16 zeroext %x) { 10031943b7f1SSimon Moll; CHECK-LABEL: us2f: 100444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10051943b7f1SSimon Moll; CHECK-NEXT: cvt.s.w %s0, %s0 100644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10071943b7f1SSimon Moll %r = uitofp i16 %x to float 10081943b7f1SSimon Moll ret float %r 10091943b7f1SSimon Moll} 10101943b7f1SSimon Moll 10111943b7f1SSimon Molldefine double @us2d(i16 zeroext %x) { 10121943b7f1SSimon Moll; CHECK-LABEL: us2d: 101344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10141943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 101544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10161943b7f1SSimon Moll %r = uitofp i16 %x to double 10171943b7f1SSimon Moll ret double %r 10181943b7f1SSimon Moll} 10191943b7f1SSimon Moll 10201943b7f1SSimon Molldefine fp128 @us2q(i16 zeroext) { 10211943b7f1SSimon Moll; CHECK-LABEL: us2q: 102244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10231943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 10241943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 102544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10261943b7f1SSimon Moll %2 = uitofp i16 %0 to fp128 10271943b7f1SSimon Moll ret fp128 %2 10281943b7f1SSimon Moll} 10291943b7f1SSimon Moll 10301943b7f1SSimon Molldefine signext i8 @c2c(i8 returned signext %0) { 10311943b7f1SSimon Moll; CHECK-LABEL: c2c: 103244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 103344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10341943b7f1SSimon Moll ret i8 %0 10351943b7f1SSimon Moll} 10361943b7f1SSimon Moll 10371943b7f1SSimon Molldefine zeroext i8 @c2uc(i8 returned signext %0) { 10381943b7f1SSimon Moll; CHECK-LABEL: c2uc: 103944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10401943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 104144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10421943b7f1SSimon Moll ret i8 %0 10431943b7f1SSimon Moll} 10441943b7f1SSimon Moll 10451943b7f1SSimon Molldefine signext i16 @c2s(i8 signext %0) { 10461943b7f1SSimon Moll; CHECK-LABEL: c2s: 104744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 104844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10491943b7f1SSimon Moll %2 = sext i8 %0 to i16 10501943b7f1SSimon Moll ret i16 %2 10511943b7f1SSimon Moll} 10521943b7f1SSimon Moll 10531943b7f1SSimon Molldefine zeroext i16 @c2us(i8 signext %0) { 10541943b7f1SSimon Moll; CHECK-LABEL: c2us: 105544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10561943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 105744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10581943b7f1SSimon Moll %2 = sext i8 %0 to i16 10591943b7f1SSimon Moll ret i16 %2 10601943b7f1SSimon Moll} 10611943b7f1SSimon Moll 10621943b7f1SSimon Molldefine signext i32 @c2i(i8 signext %0) { 10631943b7f1SSimon Moll; CHECK-LABEL: c2i: 106444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 106544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10661943b7f1SSimon Moll %2 = sext i8 %0 to i32 10671943b7f1SSimon Moll ret i32 %2 10681943b7f1SSimon Moll} 10691943b7f1SSimon Moll 10701943b7f1SSimon Molldefine zeroext i32 @c2ui(i8 signext %0) { 10711943b7f1SSimon Moll; CHECK-LABEL: c2ui: 107244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10731943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 107444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10751943b7f1SSimon Moll %2 = sext i8 %0 to i32 10761943b7f1SSimon Moll ret i32 %2 10771943b7f1SSimon Moll} 10781943b7f1SSimon Moll 10791943b7f1SSimon Molldefine i64 @c2ll(i8 signext %0) { 10801943b7f1SSimon Moll; CHECK-LABEL: c2ll: 108144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 108244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10831943b7f1SSimon Moll %2 = sext i8 %0 to i64 10841943b7f1SSimon Moll ret i64 %2 10851943b7f1SSimon Moll} 10861943b7f1SSimon Moll 10871943b7f1SSimon Molldefine i64 @c2ull(i8 signext %0) { 10881943b7f1SSimon Moll; CHECK-LABEL: c2ull: 108944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 109044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 10911943b7f1SSimon Moll %2 = sext i8 %0 to i64 10921943b7f1SSimon Moll ret i64 %2 10931943b7f1SSimon Moll} 10941943b7f1SSimon Moll 10951943b7f1SSimon Molldefine float @c2f(i8 signext %x) { 10961943b7f1SSimon Moll; CHECK-LABEL: c2f: 109744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 10981943b7f1SSimon Moll; CHECK-NEXT: cvt.s.w %s0, %s0 109944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11001943b7f1SSimon Moll %r = sitofp i8 %x to float 11011943b7f1SSimon Moll ret float %r 11021943b7f1SSimon Moll} 11031943b7f1SSimon Moll 11041943b7f1SSimon Molldefine double @c2d(i8 signext %x) { 11051943b7f1SSimon Moll; CHECK-LABEL: c2d: 110644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 11071943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 110844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11091943b7f1SSimon Moll %r = sitofp i8 %x to double 11101943b7f1SSimon Moll ret double %r 11111943b7f1SSimon Moll} 11121943b7f1SSimon Moll 11131943b7f1SSimon Molldefine fp128 @c2q(i8 signext) { 11141943b7f1SSimon Moll; CHECK-LABEL: c2q: 111544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 11161943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 11171943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 111844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11191943b7f1SSimon Moll %2 = sitofp i8 %0 to fp128 11201943b7f1SSimon Moll ret fp128 %2 11211943b7f1SSimon Moll} 11221943b7f1SSimon Moll 11231943b7f1SSimon Molldefine signext i8 @uc2c(i8 returned zeroext %0) { 11241943b7f1SSimon Moll; CHECK-LABEL: uc2c: 112544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 11261943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 11271943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 112844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11291943b7f1SSimon Moll ret i8 %0 11301943b7f1SSimon Moll} 11311943b7f1SSimon Moll 11321943b7f1SSimon Molldefine zeroext i8 @uc2uc(i8 returned zeroext %0) { 11331943b7f1SSimon Moll; CHECK-LABEL: uc2uc: 113444a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 113544a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11361943b7f1SSimon Moll ret i8 %0 11371943b7f1SSimon Moll} 11381943b7f1SSimon Moll 11391943b7f1SSimon Molldefine signext i16 @uc2s(i8 zeroext %0) { 11401943b7f1SSimon Moll; CHECK-LABEL: uc2s: 114144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 114244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11431943b7f1SSimon Moll %2 = zext i8 %0 to i16 11441943b7f1SSimon Moll ret i16 %2 11451943b7f1SSimon Moll} 11461943b7f1SSimon Moll 11471943b7f1SSimon Molldefine zeroext i16 @uc2us(i8 zeroext %0) { 11481943b7f1SSimon Moll; CHECK-LABEL: uc2us: 114944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 115044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11511943b7f1SSimon Moll %2 = zext i8 %0 to i16 11521943b7f1SSimon Moll ret i16 %2 11531943b7f1SSimon Moll} 11541943b7f1SSimon Moll 11551943b7f1SSimon Molldefine signext i32 @uc2i(i8 zeroext %0) { 11561943b7f1SSimon Moll; CHECK-LABEL: uc2i: 115744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 115844a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11591943b7f1SSimon Moll %2 = zext i8 %0 to i32 11601943b7f1SSimon Moll ret i32 %2 11611943b7f1SSimon Moll} 11621943b7f1SSimon Moll 11631943b7f1SSimon Molldefine zeroext i32 @uc2ui(i8 zeroext %0) { 11641943b7f1SSimon Moll; CHECK-LABEL: uc2ui: 116544a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 116644a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11671943b7f1SSimon Moll %2 = zext i8 %0 to i32 11681943b7f1SSimon Moll ret i32 %2 11691943b7f1SSimon Moll} 11701943b7f1SSimon Moll 11711943b7f1SSimon Molldefine i64 @uc2ll(i8 zeroext %0) { 11721943b7f1SSimon Moll; CHECK-LABEL: uc2ll: 117344a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 117444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11751943b7f1SSimon Moll %2 = zext i8 %0 to i64 11761943b7f1SSimon Moll ret i64 %2 11771943b7f1SSimon Moll} 11781943b7f1SSimon Moll 11791943b7f1SSimon Molldefine i64 @uc2ull(i8 zeroext %0) { 11801943b7f1SSimon Moll; CHECK-LABEL: uc2ull: 118144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 118244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11831943b7f1SSimon Moll %2 = zext i8 %0 to i64 11841943b7f1SSimon Moll ret i64 %2 11851943b7f1SSimon Moll} 11861943b7f1SSimon Moll 11871943b7f1SSimon Molldefine float @uc2f(i8 zeroext %x) { 11881943b7f1SSimon Moll; CHECK-LABEL: uc2f: 118944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 11901943b7f1SSimon Moll; CHECK-NEXT: cvt.s.w %s0, %s0 119144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 11921943b7f1SSimon Moll %r = uitofp i8 %x to float 11931943b7f1SSimon Moll ret float %r 11941943b7f1SSimon Moll} 11951943b7f1SSimon Moll 11961943b7f1SSimon Molldefine double @uc2d(i8 zeroext %x) { 11971943b7f1SSimon Moll; CHECK-LABEL: uc2d: 119844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 11991943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 120044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12011943b7f1SSimon Moll %r = uitofp i8 %x to double 12021943b7f1SSimon Moll ret double %r 12031943b7f1SSimon Moll} 12041943b7f1SSimon Moll 12051943b7f1SSimon Molldefine fp128 @uc2q(i8 zeroext) { 12061943b7f1SSimon Moll; CHECK-LABEL: uc2q: 120744a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12081943b7f1SSimon Moll; CHECK-NEXT: cvt.d.w %s0, %s0 12091943b7f1SSimon Moll; CHECK-NEXT: cvt.q.d %s0, %s0 121044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12111943b7f1SSimon Moll %2 = uitofp i8 %0 to fp128 12121943b7f1SSimon Moll ret fp128 %2 12131943b7f1SSimon Moll} 12141943b7f1SSimon Moll 12151943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12161943b7f1SSimon Molldefine i128 @i128() { 12171943b7f1SSimon Moll; CHECK-LABEL: i128: 121844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12191943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 12201943b7f1SSimon Moll; CHECK-NEXT: or %s1, -1, (0)1 122144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12221943b7f1SSimon Moll ret i128 -2147483648 12231943b7f1SSimon Moll} 12241943b7f1SSimon Moll 12251943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12261943b7f1SSimon Molldefine i128 @ui128() { 12271943b7f1SSimon Moll; CHECK-LABEL: ui128: 122844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12291943b7f1SSimon Moll; CHECK-NEXT: lea %s0, -2147483648 12301943b7f1SSimon Moll; CHECK-NEXT: or %s1, -1, (0)1 123144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12321943b7f1SSimon Moll ret i128 -2147483648 12331943b7f1SSimon Moll} 12341943b7f1SSimon Moll 12351943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12361943b7f1SSimon Molldefine signext i8 @i1282c(i128 %0) { 12371943b7f1SSimon Moll; CHECK-LABEL: i1282c: 123844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12391943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 12401943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 124144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12421943b7f1SSimon Moll %2 = trunc i128 %0 to i8 12431943b7f1SSimon Moll ret i8 %2 12441943b7f1SSimon Moll} 12451943b7f1SSimon Moll 12461943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12471943b7f1SSimon Molldefine signext i8 @ui1282c(i128 %0) { 12481943b7f1SSimon Moll; CHECK-LABEL: ui1282c: 124944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12501943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 56 12511943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 56 125244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12531943b7f1SSimon Moll %2 = trunc i128 %0 to i8 12541943b7f1SSimon Moll ret i8 %2 12551943b7f1SSimon Moll} 12561943b7f1SSimon Moll 12571943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12581943b7f1SSimon Molldefine zeroext i8 @i1282uc(i128 %0) { 12591943b7f1SSimon Moll; CHECK-LABEL: i1282uc: 126044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12611943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 126244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12631943b7f1SSimon Moll %2 = trunc i128 %0 to i8 12641943b7f1SSimon Moll ret i8 %2 12651943b7f1SSimon Moll} 12661943b7f1SSimon Moll 12671943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12681943b7f1SSimon Molldefine zeroext i8 @ui1282uc(i128 %0) { 12691943b7f1SSimon Moll; CHECK-LABEL: ui1282uc: 127044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12711943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (56)0 127244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12731943b7f1SSimon Moll %2 = trunc i128 %0 to i8 12741943b7f1SSimon Moll ret i8 %2 12751943b7f1SSimon Moll} 12761943b7f1SSimon Moll 12771943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12781943b7f1SSimon Molldefine signext i16 @i1282s(i128 %0) { 12791943b7f1SSimon Moll; CHECK-LABEL: i1282s: 128044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12811943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 12821943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 128344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12841943b7f1SSimon Moll %2 = trunc i128 %0 to i16 12851943b7f1SSimon Moll ret i16 %2 12861943b7f1SSimon Moll} 12871943b7f1SSimon Moll 12881943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 12891943b7f1SSimon Molldefine signext i16 @ui1282s(i128 %0) { 12901943b7f1SSimon Moll; CHECK-LABEL: ui1282s: 129144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 12921943b7f1SSimon Moll; CHECK-NEXT: sll %s0, %s0, 48 12931943b7f1SSimon Moll; CHECK-NEXT: sra.l %s0, %s0, 48 129444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 12951943b7f1SSimon Moll %2 = trunc i128 %0 to i16 12961943b7f1SSimon Moll ret i16 %2 12971943b7f1SSimon Moll} 12981943b7f1SSimon Moll 12991943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13001943b7f1SSimon Molldefine zeroext i16 @i1282us(i128 %0) { 13011943b7f1SSimon Moll; CHECK-LABEL: i1282us: 130244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13031943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 130444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13051943b7f1SSimon Moll %2 = trunc i128 %0 to i16 13061943b7f1SSimon Moll ret i16 %2 13071943b7f1SSimon Moll} 13081943b7f1SSimon Moll 13091943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13101943b7f1SSimon Molldefine zeroext i16 @ui1282us(i128 %0) { 13111943b7f1SSimon Moll; CHECK-LABEL: ui1282us: 131244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13131943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (48)0 131444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13151943b7f1SSimon Moll %2 = trunc i128 %0 to i16 13161943b7f1SSimon Moll ret i16 %2 13171943b7f1SSimon Moll} 13181943b7f1SSimon Moll 13191943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13201943b7f1SSimon Molldefine signext i32 @i1282i(i128 %0) { 13211943b7f1SSimon Moll; CHECK-LABEL: i1282i: 132244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13231943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 132444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13251943b7f1SSimon Moll %2 = trunc i128 %0 to i32 13261943b7f1SSimon Moll ret i32 %2 13271943b7f1SSimon Moll} 13281943b7f1SSimon Moll 13291943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13301943b7f1SSimon Molldefine signext i32 @ui1282i(i128 %0) { 13311943b7f1SSimon Moll; CHECK-LABEL: ui1282i: 133244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13331943b7f1SSimon Moll; CHECK-NEXT: adds.w.sx %s0, %s0, (0)1 133444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13351943b7f1SSimon Moll %2 = trunc i128 %0 to i32 13361943b7f1SSimon Moll ret i32 %2 13371943b7f1SSimon Moll} 13381943b7f1SSimon Moll 13391943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13401943b7f1SSimon Molldefine zeroext i32 @i1282ui(i128 %0) { 13411943b7f1SSimon Moll; CHECK-LABEL: i1282ui: 134244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13431943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 134444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13451943b7f1SSimon Moll %2 = trunc i128 %0 to i32 13461943b7f1SSimon Moll ret i32 %2 13471943b7f1SSimon Moll} 13481943b7f1SSimon Moll 13491943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13501943b7f1SSimon Molldefine zeroext i32 @ui1282ui(i128 %0) { 13511943b7f1SSimon Moll; CHECK-LABEL: ui1282ui: 135244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 13531943b7f1SSimon Moll; CHECK-NEXT: and %s0, %s0, (32)0 135444a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13551943b7f1SSimon Moll %2 = trunc i128 %0 to i32 13561943b7f1SSimon Moll ret i32 %2 13571943b7f1SSimon Moll} 13581943b7f1SSimon Moll 13591943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13601943b7f1SSimon Molldefine i64 @i1282ll(i128 %0) { 13611943b7f1SSimon Moll; CHECK-LABEL: i1282ll: 136244a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 136344a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13641943b7f1SSimon Moll %2 = trunc i128 %0 to i64 13651943b7f1SSimon Moll ret i64 %2 13661943b7f1SSimon Moll} 13671943b7f1SSimon Moll 13681943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13691943b7f1SSimon Molldefine i64 @ui1282ll(i128 %0) { 13701943b7f1SSimon Moll; CHECK-LABEL: ui1282ll: 137144a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 137244a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13731943b7f1SSimon Moll %2 = trunc i128 %0 to i64 13741943b7f1SSimon Moll ret i64 %2 13751943b7f1SSimon Moll} 13761943b7f1SSimon Moll 13771943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13781943b7f1SSimon Molldefine i64 @i1282ull(i128 %0) { 13791943b7f1SSimon Moll; CHECK-LABEL: i1282ull: 138044a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 138144a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13821943b7f1SSimon Moll %2 = trunc i128 %0 to i64 13831943b7f1SSimon Moll ret i64 %2 13841943b7f1SSimon Moll} 13851943b7f1SSimon Moll 13861943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13871943b7f1SSimon Molldefine i64 @ui1282ull(i128 %0) { 13881943b7f1SSimon Moll; CHECK-LABEL: ui1282ull: 138944a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 139044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 13911943b7f1SSimon Moll %2 = trunc i128 %0 to i64 13921943b7f1SSimon Moll ret i64 %2 13931943b7f1SSimon Moll} 13941943b7f1SSimon Moll 13951943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 13961943b7f1SSimon Molldefine i128 @i1282ui128(i128 returned %0) { 13971943b7f1SSimon Moll; CHECK-LABEL: i1282ui128: 139844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 139944a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 14001943b7f1SSimon Moll ret i128 %0 14011943b7f1SSimon Moll} 14021943b7f1SSimon Moll 14031943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14041943b7f1SSimon Molldefine i128 @ui1282i128(i128 returned %0) { 14051943b7f1SSimon Moll; CHECK-LABEL: ui1282i128: 140644a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 140744a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 14081943b7f1SSimon Moll ret i128 %0 14091943b7f1SSimon Moll} 14101943b7f1SSimon Moll 14111943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14121943b7f1SSimon Molldefine float @i1282f(i128) { 14131943b7f1SSimon Moll; CHECK-LABEL: i1282f: 14141943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14151943b7f1SSimon Moll; CHECK-NEXT: lea %s2, __floattisf@lo 14161943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 14171943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __floattisf@hi(, %s2) 14181943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14191943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14201943b7f1SSimon Moll %2 = sitofp i128 %0 to float 14211943b7f1SSimon Moll ret float %2 14221943b7f1SSimon Moll} 14231943b7f1SSimon Moll 14241943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14251943b7f1SSimon Molldefine float @ui1282f(i128) { 14261943b7f1SSimon Moll; CHECK-LABEL: ui1282f: 14271943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14281943b7f1SSimon Moll; CHECK-NEXT: lea %s2, __floatuntisf@lo 14291943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 14301943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __floatuntisf@hi(, %s2) 14311943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14321943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14331943b7f1SSimon Moll %2 = uitofp i128 %0 to float 14341943b7f1SSimon Moll ret float %2 14351943b7f1SSimon Moll} 14361943b7f1SSimon Moll 14371943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14381943b7f1SSimon Molldefine double @i1282d(i128) { 14391943b7f1SSimon Moll; CHECK-LABEL: i1282d: 14401943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14411943b7f1SSimon Moll; CHECK-NEXT: lea %s2, __floattidf@lo 14421943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 14431943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __floattidf@hi(, %s2) 14441943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14451943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14461943b7f1SSimon Moll %2 = sitofp i128 %0 to double 14471943b7f1SSimon Moll ret double %2 14481943b7f1SSimon Moll} 14491943b7f1SSimon Moll 14501943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14511943b7f1SSimon Molldefine double @ui1282d(i128) { 14521943b7f1SSimon Moll; CHECK-LABEL: ui1282d: 14531943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14541943b7f1SSimon Moll; CHECK-NEXT: lea %s2, __floatuntidf@lo 14551943b7f1SSimon Moll; CHECK-NEXT: and %s2, %s2, (32)0 14561943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __floatuntidf@hi(, %s2) 14571943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14581943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14591943b7f1SSimon Moll %2 = uitofp i128 %0 to double 14601943b7f1SSimon Moll ret double %2 14611943b7f1SSimon Moll} 14621943b7f1SSimon Moll 14631943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14641943b7f1SSimon Molldefine i128 @d2i128(double) { 14651943b7f1SSimon Moll; CHECK-LABEL: d2i128: 14661943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14671943b7f1SSimon Moll; CHECK-NEXT: lea %s1, __fixdfti@lo 14681943b7f1SSimon Moll; CHECK-NEXT: and %s1, %s1, (32)0 14691943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __fixdfti@hi(, %s1) 14701943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14711943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14721943b7f1SSimon Moll %2 = fptosi double %0 to i128 14731943b7f1SSimon Moll ret i128 %2 14741943b7f1SSimon Moll} 14751943b7f1SSimon Moll 14761943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14771943b7f1SSimon Molldefine i128 @d2ui128(double) { 14781943b7f1SSimon Moll; CHECK-LABEL: d2ui128: 14791943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14801943b7f1SSimon Moll; CHECK-NEXT: lea %s1, __fixunsdfti@lo 14811943b7f1SSimon Moll; CHECK-NEXT: and %s1, %s1, (32)0 14821943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __fixunsdfti@hi(, %s1) 14831943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14841943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14851943b7f1SSimon Moll %2 = fptoui double %0 to i128 14861943b7f1SSimon Moll ret i128 %2 14871943b7f1SSimon Moll} 14881943b7f1SSimon Moll 14891943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 14901943b7f1SSimon Molldefine i128 @f2i128(float) { 14911943b7f1SSimon Moll; CHECK-LABEL: f2i128: 14921943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 14931943b7f1SSimon Moll; CHECK-NEXT: lea %s1, __fixsfti@lo 14941943b7f1SSimon Moll; CHECK-NEXT: and %s1, %s1, (32)0 14951943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __fixsfti@hi(, %s1) 14961943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 14971943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 14981943b7f1SSimon Moll %2 = fptosi float %0 to i128 14991943b7f1SSimon Moll ret i128 %2 15001943b7f1SSimon Moll} 15011943b7f1SSimon Moll 15021943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15031943b7f1SSimon Molldefine i128 @f2ui128(float) { 15041943b7f1SSimon Moll; CHECK-LABEL: f2ui128: 15051943b7f1SSimon Moll; CHECK: .LBB{{[0-9]+}}_2: 15061943b7f1SSimon Moll; CHECK-NEXT: lea %s1, __fixunssfti@lo 15071943b7f1SSimon Moll; CHECK-NEXT: and %s1, %s1, (32)0 15081943b7f1SSimon Moll; CHECK-NEXT: lea.sl %s12, __fixunssfti@hi(, %s1) 15091943b7f1SSimon Moll; CHECK-NEXT: bsic %s10, (, %s12) 15101943b7f1SSimon Moll; CHECK-NEXT: or %s11, 0, %s9 15111943b7f1SSimon Moll %2 = fptoui float %0 to i128 15121943b7f1SSimon Moll ret i128 %2 15131943b7f1SSimon Moll} 15141943b7f1SSimon Moll 15151943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15161943b7f1SSimon Molldefine i128 @ll2i128(i64 %0) { 15171943b7f1SSimon Moll; CHECK-LABEL: ll2i128: 151844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15191943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 152044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15211943b7f1SSimon Moll %2 = sext i64 %0 to i128 15221943b7f1SSimon Moll ret i128 %2 15231943b7f1SSimon Moll} 15241943b7f1SSimon Moll 15251943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15261943b7f1SSimon Molldefine i128 @ll2ui128(i64 %0) { 15271943b7f1SSimon Moll; CHECK-LABEL: ll2ui128: 152844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15291943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 153044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15311943b7f1SSimon Moll %2 = sext i64 %0 to i128 15321943b7f1SSimon Moll ret i128 %2 15331943b7f1SSimon Moll} 15341943b7f1SSimon Moll 15351943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15361943b7f1SSimon Molldefine i128 @ull2i128(i64 %0) { 15371943b7f1SSimon Moll; CHECK-LABEL: ull2i128: 153844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15391943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 154044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15411943b7f1SSimon Moll %2 = zext i64 %0 to i128 15421943b7f1SSimon Moll ret i128 %2 15431943b7f1SSimon Moll} 15441943b7f1SSimon Moll 15451943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15461943b7f1SSimon Molldefine i128 @ull2ui128(i64 %0) { 15471943b7f1SSimon Moll; CHECK-LABEL: ull2ui128: 154844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15491943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 155044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15511943b7f1SSimon Moll %2 = zext i64 %0 to i128 15521943b7f1SSimon Moll ret i128 %2 15531943b7f1SSimon Moll} 15541943b7f1SSimon Moll 15551943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15561943b7f1SSimon Molldefine i128 @i2i128(i32 signext %0) { 15571943b7f1SSimon Moll; CHECK-LABEL: i2i128: 155844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15591943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 156044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15611943b7f1SSimon Moll %2 = sext i32 %0 to i128 15621943b7f1SSimon Moll ret i128 %2 15631943b7f1SSimon Moll} 15641943b7f1SSimon Moll 15651943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15661943b7f1SSimon Molldefine i128 @i2ui128(i32 signext %0) { 15671943b7f1SSimon Moll; CHECK-LABEL: i2ui128: 156844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15691943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 157044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15711943b7f1SSimon Moll %2 = sext i32 %0 to i128 15721943b7f1SSimon Moll ret i128 %2 15731943b7f1SSimon Moll} 15741943b7f1SSimon Moll 15751943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15761943b7f1SSimon Molldefine i128 @ui2i128(i32 zeroext %0) { 15771943b7f1SSimon Moll; CHECK-LABEL: ui2i128: 157844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15791943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 158044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15811943b7f1SSimon Moll %2 = zext i32 %0 to i128 15821943b7f1SSimon Moll ret i128 %2 15831943b7f1SSimon Moll} 15841943b7f1SSimon Moll 15851943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15861943b7f1SSimon Molldefine i128 @ui2ui128(i32 zeroext %0) { 15871943b7f1SSimon Moll; CHECK-LABEL: ui2ui128: 158844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15891943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 159044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 15911943b7f1SSimon Moll %2 = zext i32 %0 to i128 15921943b7f1SSimon Moll ret i128 %2 15931943b7f1SSimon Moll} 15941943b7f1SSimon Moll 15951943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 15961943b7f1SSimon Molldefine i128 @s2i128(i16 signext %0) { 15971943b7f1SSimon Moll; CHECK-LABEL: s2i128: 159844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 15991943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 160044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16011943b7f1SSimon Moll %2 = sext i16 %0 to i128 16021943b7f1SSimon Moll ret i128 %2 16031943b7f1SSimon Moll} 16041943b7f1SSimon Moll 16051943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16061943b7f1SSimon Molldefine i128 @s2ui128(i16 signext %0) { 16071943b7f1SSimon Moll; CHECK-LABEL: s2ui128: 160844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16091943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 161044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16111943b7f1SSimon Moll %2 = sext i16 %0 to i128 16121943b7f1SSimon Moll ret i128 %2 16131943b7f1SSimon Moll} 16141943b7f1SSimon Moll 16151943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16161943b7f1SSimon Molldefine i128 @us2i128(i16 zeroext %0) { 16171943b7f1SSimon Moll; CHECK-LABEL: us2i128: 161844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16191943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 162044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16211943b7f1SSimon Moll %2 = zext i16 %0 to i128 16221943b7f1SSimon Moll ret i128 %2 16231943b7f1SSimon Moll} 16241943b7f1SSimon Moll 16251943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16261943b7f1SSimon Molldefine i128 @us2ui128(i16 zeroext %0) { 16271943b7f1SSimon Moll; CHECK-LABEL: us2ui128: 162844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16291943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 163044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16311943b7f1SSimon Moll %2 = zext i16 %0 to i128 16321943b7f1SSimon Moll ret i128 %2 16331943b7f1SSimon Moll} 16341943b7f1SSimon Moll 16351943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16361943b7f1SSimon Molldefine i128 @c2i128(i8 signext %0) { 16371943b7f1SSimon Moll; CHECK-LABEL: c2i128: 163844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16391943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 164044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16411943b7f1SSimon Moll %2 = sext i8 %0 to i128 16421943b7f1SSimon Moll ret i128 %2 16431943b7f1SSimon Moll} 16441943b7f1SSimon Moll 16451943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16461943b7f1SSimon Molldefine i128 @char2ui128(i8 signext %0) { 16471943b7f1SSimon Moll; CHECK-LABEL: char2ui128: 164844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16491943b7f1SSimon Moll; CHECK-NEXT: sra.l %s1, %s0, 63 165044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16511943b7f1SSimon Moll %2 = sext i8 %0 to i128 16521943b7f1SSimon Moll ret i128 %2 16531943b7f1SSimon Moll} 16541943b7f1SSimon Moll 16551943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16561943b7f1SSimon Molldefine i128 @uc2i128(i8 zeroext %0) { 16571943b7f1SSimon Moll; CHECK-LABEL: uc2i128: 165844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16591943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 166044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16611943b7f1SSimon Moll %2 = zext i8 %0 to i128 16621943b7f1SSimon Moll ret i128 %2 16631943b7f1SSimon Moll} 16641943b7f1SSimon Moll 16651943b7f1SSimon Moll; Function Attrs: norecurse nounwind readnone 16661943b7f1SSimon Molldefine i128 @uc2ui128(i8 zeroext %0) { 16671943b7f1SSimon Moll; CHECK-LABEL: uc2ui128: 166844a4f939SKazushi (Jam) Marukawa; CHECK: # %bb.0: 16691943b7f1SSimon Moll; CHECK-NEXT: or %s1, 0, (0)1 167044a4f939SKazushi (Jam) Marukawa; CHECK-NEXT: b.l.t (, %s10) 16711943b7f1SSimon Moll %2 = zext i8 %0 to i128 16721943b7f1SSimon Moll ret i128 %2 16731943b7f1SSimon Moll} 1674