brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · 3cbe906 Raw
137 lines · plain
1## Test valid bit manipulation instructions.2 3# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \4# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s5# RUN: llvm-mc %s --triple=loongarch64 --show-encoding --defsym=LA64=1 \6# RUN:     | FileCheck --check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ,CHECK64-ASM,CHECK64-ASM-AND-OBJ %s7# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj | llvm-objdump -d - \8# RUN:     | FileCheck --check-prefixes=CHECK-ASM-AND-OBJ %s9# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj --defsym=LA64=1 | llvm-objdump -d - \10# RUN:     | FileCheck --check-prefixes=CHECK-ASM-AND-OBJ,CHECK64-ASM-AND-OBJ %s11 12#############################################################13## Instructions for both loongarch32 and loongarch6414#############################################################15 16# CHECK-ASM: ext.w.b $t8, $t617# CHECK-ASM: encoding: [0x54,0x5e,0x00,0x00]18ext.w.b $t8, $t619 20# CHECK-ASM: ext.w.h $s0, $s021# CHECK-ASM: encoding: [0xf7,0x5a,0x00,0x00]22ext.w.h $s0, $s023 24# CHECK-ASM-AND-OBJ: clo.w $ra, $sp25# CHECK-ASM: encoding: [0x61,0x10,0x00,0x00]26clo.w $ra, $sp27 28# CHECK-ASM-AND-OBJ: clz.w $a3, $a629# CHECK-ASM: encoding: [0x47,0x15,0x00,0x00]30clz.w $a3, $a631 32# CHECK-ASM-AND-OBJ: cto.w $tp, $a233# CHECK-ASM: encoding: [0xc2,0x18,0x00,0x00]34cto.w $tp, $a235 36# CHECK-ASM-AND-OBJ: ctz.w $a1, $fp37# CHECK-ASM: encoding: [0xc5,0x1e,0x00,0x00]38ctz.w $a1, $fp39 40# CHECK-ASM-AND-OBJ: bytepick.w $s6, $zero, $t4, 041# CHECK-ASM: encoding: [0x1d,0x40,0x08,0x00]42bytepick.w $s6, $zero, $t4, 043 44# CHECK-ASM-AND-OBJ: revb.2h $t8, $a745# CHECK-ASM: encoding: [0x74,0x31,0x00,0x00]46revb.2h $t8, $a747 48# CHECK-ASM-AND-OBJ: bitrev.4b $r21, $s449# CHECK-ASM: encoding: [0x75,0x4b,0x00,0x00]50bitrev.4b $r21, $s451 52# CHECK-ASM-AND-OBJ: bitrev.w $s2, $a153# CHECK-ASM: encoding: [0xb9,0x50,0x00,0x00]54bitrev.w $s2, $a155 56# CHECK-ASM-AND-OBJ: bstrins.w $a4, $a7, 7, 257# CHECK-ASM: encoding: [0x68,0x09,0x67,0x00]58bstrins.w $a4, $a7, 7, 259 60# CHECK-ASM-AND-OBJ: bstrpick.w $ra, $a5, 10, 461# CHECK-ASM: encoding: [0x21,0x91,0x6a,0x00]62bstrpick.w $ra, $a5, 10, 463 64# CHECK-ASM-AND-OBJ: maskeqz $t8, $a7, $t665# CHECK-ASM: encoding: [0x74,0x49,0x13,0x00]66maskeqz $t8, $a7, $t667 68# CHECK-ASM-AND-OBJ: masknez $t8, $t1, $s369# CHECK-ASM: encoding: [0xb4,0xe9,0x13,0x00]70masknez $t8, $t1, $s371 72 73#############################################################74## Instructions only for loongarch6475#############################################################76 77.ifdef LA6478 79# CHECK64-ASM-AND-OBJ: clo.d $s6, $ra80# CHECK64-ASM: encoding: [0x3d,0x20,0x00,0x00]81clo.d $s6, $ra82 83# CHECK64-ASM-AND-OBJ: clz.d $s3, $s384# CHECK64-ASM: encoding: [0x5a,0x27,0x00,0x00]85clz.d $s3, $s386 87# CHECK64-ASM-AND-OBJ: cto.d $t6, $t888# CHECK64-ASM: encoding: [0x92,0x2a,0x00,0x00]89cto.d $t6, $t890 91# CHECK64-ASM-AND-OBJ: ctz.d $t5, $a692# CHECK64-ASM: encoding: [0x51,0x2d,0x00,0x00]93ctz.d $t5, $a694 95# CHECK64-ASM-AND-OBJ: bytepick.d $t3, $t5, $t8, 496# CHECK64-ASM: encoding: [0x2f,0x52,0x0e,0x00]97bytepick.d $t3, $t5, $t8, 498 99# CHECK64-ASM-AND-OBJ: revb.4h $t1, $t7100# CHECK64-ASM: encoding: [0x6d,0x36,0x00,0x00]101revb.4h $t1, $t7102 103# CHECK64-ASM-AND-OBJ: revb.2w $s5, $s4104# CHECK64-ASM: encoding: [0x7c,0x3b,0x00,0x00]105revb.2w $s5, $s4106 107# CHECK64-ASM-AND-OBJ: revb.d $zero, $s0108# CHECK64-ASM: encoding: [0xe0,0x3e,0x00,0x00]109revb.d $zero, $s0110 111# CHECK64-ASM-AND-OBJ: revh.2w $s5, $a6112# CHECK64-ASM: encoding: [0x5c,0x41,0x00,0x00]113revh.2w $s5, $a6114 115# CHECK64-ASM-AND-OBJ: revh.d $a5, $a3116# CHECK64-ASM: encoding: [0xe9,0x44,0x00,0x00]117revh.d $a5, $a3118 119# CHECK64-ASM-AND-OBJ: bitrev.8b $t1, $s2120# CHECK64-ASM: encoding: [0x2d,0x4f,0x00,0x00]121bitrev.8b $t1, $s2122 123# CHECK64-ASM-AND-OBJ: bitrev.d $t7, $s0124# CHECK64-ASM: encoding: [0xf3,0x56,0x00,0x00]125bitrev.d $t7, $s0126 127# CHECK64-ASM-AND-OBJ: bstrins.d $a4, $a7, 7, 2128# CHECK64-ASM: encoding: [0x68,0x09,0x87,0x00]129bstrins.d $a4, $a7, 7, 2130 131# CHECK64-ASM-AND-OBJ: bstrpick.d $s8, $s4, 39, 22132# CHECK64-ASM: encoding: [0x7f,0x5b,0xe7,0x00]133bstrpick.d $s8, $s4, 39, 22134 135.endif136 137