69 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS323; RUN: llc -O0 -mtriple=mipsel-linux-gnu -global-isel -mattr=+mips32r2 -verify-machineinstrs %s -o -| FileCheck %s -check-prefixes=MIPS32R24 5declare i32 @llvm.bswap.i32(i32)6define i32 @bswap_i32(i32 %x) {7; MIPS32-LABEL: bswap_i32:8; MIPS32: # %bb.0: # %entry9; MIPS32-NEXT: sll $2, $4, 2410; MIPS32-NEXT: srl $1, $4, 2411; MIPS32-NEXT: or $1, $1, $212; MIPS32-NEXT: andi $2, $4, 6528013; MIPS32-NEXT: sll $2, $2, 814; MIPS32-NEXT: or $1, $1, $215; MIPS32-NEXT: srl $2, $4, 816; MIPS32-NEXT: andi $2, $2, 6528017; MIPS32-NEXT: or $2, $1, $218; MIPS32-NEXT: jr $ra19; MIPS32-NEXT: nop20;21; MIPS32R2-LABEL: bswap_i32:22; MIPS32R2: # %bb.0: # %entry23; MIPS32R2-NEXT: wsbh $1, $424; MIPS32R2-NEXT: rotr $2, $1, 1625; MIPS32R2-NEXT: jr $ra26; MIPS32R2-NEXT: nop27entry:28 %0 = tail call i32 @llvm.bswap.i32(i32 %x)29 ret i32 %030}31 32declare i64 @llvm.bswap.i64(i64)33define i64 @bswap_i64(i64 %x) {34; MIPS32-LABEL: bswap_i64:35; MIPS32: # %bb.0: # %entry36; MIPS32-NEXT: sll $2, $5, 2437; MIPS32-NEXT: srl $1, $5, 2438; MIPS32-NEXT: or $1, $1, $239; MIPS32-NEXT: andi $2, $5, 6528040; MIPS32-NEXT: sll $2, $2, 841; MIPS32-NEXT: or $1, $1, $242; MIPS32-NEXT: srl $2, $5, 843; MIPS32-NEXT: andi $2, $2, 6528044; MIPS32-NEXT: or $2, $1, $245; MIPS32-NEXT: sll $3, $4, 2446; MIPS32-NEXT: srl $1, $4, 2447; MIPS32-NEXT: or $1, $1, $348; MIPS32-NEXT: andi $3, $4, 6528049; MIPS32-NEXT: sll $3, $3, 850; MIPS32-NEXT: or $1, $1, $351; MIPS32-NEXT: srl $3, $4, 852; MIPS32-NEXT: andi $3, $3, 6528053; MIPS32-NEXT: or $3, $1, $354; MIPS32-NEXT: jr $ra55; MIPS32-NEXT: nop56;57; MIPS32R2-LABEL: bswap_i64:58; MIPS32R2: # %bb.0: # %entry59; MIPS32R2-NEXT: wsbh $1, $560; MIPS32R2-NEXT: rotr $2, $1, 1661; MIPS32R2-NEXT: wsbh $1, $462; MIPS32R2-NEXT: rotr $3, $1, 1663; MIPS32R2-NEXT: jr $ra64; MIPS32R2-NEXT: nop65entry:66 %0 = tail call i64 @llvm.bswap.i64(i64 %x)67 ret i64 %068}69