44// CHECK-RV64: Pattern for SEXT_BIT23: (i64 (sra (i64 (i64 (shl (i64 GPR:$rs1), (i64 (i64 40))))), (i64 (i64 63))))
55// CHECK-RV32: Pattern for SEXT_BIT23: (i32 (sra (i32 (i32 (shl (i32 GPR:$rs1), (i32 (i32 8))))), (i32 (i32 31))))
66SEXT_BIT23 {
7- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
8- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
7+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd0 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
8+ assembly: "{name(rd)}, {name(rs1)}";
99 behavior: {
1010 if (rd != 0) {
1111 X[rd] = (signed)(X[rs1][23+:1]);
@@ -17,8 +17,8 @@ SEXT_BIT23 {
1717// CHECK-RV64: Pattern for ZEXT_BIT23: (and (i64 (srl (i64 GPR:$rs1), (i64 (i64 23)))), (i64 1))
1818// CHECK-RV32: Pattern for ZEXT_BIT23: (and (i32 (srl (i32 GPR:$rs1), (i32 (i32 23)))), (i32 1))
1919ZEXT_BIT23 {
20- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
21- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
20+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd1 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
21+ assembly: "{name(rd)}, {name(rs1)}";
2222 behavior: {
2323 if (rd != 0) {
2424 X[rd] = (unsigned)(X[rs1][23+:1]);
@@ -29,8 +29,8 @@ ZEXT_BIT23 {
2929// CHECK-RV64: Pattern for ZEXT_UNALIGNED_BYTE: (and (i64 (srl (i64 GPR:$rs1), (i64 (i64 11)))), (i64 255))
3030// CHECK-RV32: Pattern for ZEXT_UNALIGNED_BYTE: (and (i32 (srl (i32 GPR:$rs1), (i32 (i32 11)))), (i32 255))
3131ZEXT_UNALIGNED_BYTE {
32- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
33- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
32+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd2 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
33+ assembly: "{name(rd)}, {name(rs1)}";
3434 behavior: {
3535 if (rd != 0) {
3636 X[rd] = (unsigned)(X[rs1][11+:8]);
@@ -41,8 +41,8 @@ ZEXT_UNALIGNED_BYTE {
4141// CHECK-RV64: Pattern for SEXT_UNALIGNED_BYTE: (i64 (sra (i64 (i64 (shl (i64 GPR:$rs1), (i64 (i64 45))))), (i64 (i64 56))))
4242// CHECK-RV32: Pattern for SEXT_UNALIGNED_BYTE: (i32 (sra (i32 (i32 (shl (i32 GPR:$rs1), (i32 (i32 13))))), (i32 (i32 24))))
4343SEXT_UNALIGNED_BYTE {
44- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
45- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
44+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd3 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
45+ assembly: "{name(rd)}, {name(rs1)}";
4646 behavior: {
4747 if (rd != 0) {
4848 X[rd] = (signed)(X[rs1][11+:8]);
@@ -53,8 +53,8 @@ SEXT_UNALIGNED_BYTE {
5353// CHECK-RV64: Pattern for ZEXT_ALIGNED_WORD: (and (i64 (srl (i64 GPR:$rs1), (i64 (i64 16)))), (i64 65535))
5454// CHECK-RV32: Pattern for ZEXT_ALIGNED_WORD: (i32 (srl (i32 GPR:$rs1), (i32 (i32 16))))
5555ZEXT_ALIGNED_WORD {
56- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
57- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
56+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd4 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
57+ assembly: "{name(rd)}, {name(rs1)}";
5858 behavior: {
5959 if (rd != 0) {
6060 X[rd] = (unsigned)(X[rs1][16+:16]);
@@ -65,8 +65,8 @@ ZEXT_ALIGNED_WORD {
6565// CHECK-RV64: Pattern for SEXT_ALIGNED_WORD: (i64 (sra (i64 (i64 (shl (i64 GPR:$rs1), (i64 (i64 32))))), (i64 (i64 48))))
6666// CHECK-RV32: Pattern for SEXT_ALIGNED_WORD: (i32 (sra (i32 GPR:$rs1), (i32 (i32 16))))
6767SEXT_ALIGNED_WORD {
68- encoding: 5'b00000 :: 1'b0 :: 1'b0 :: rs2[4:0] :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
69- assembly: "{name(rd)}, {name(rs1)}, {name(rs2)} ";
68+ encoding: 5'b00000 :: 1'b0 :: 1'b0 :: 5'd5 :: rs1[4:0] :: 3'b000 :: rd[4:0] :: 7'b1111011;
69+ assembly: "{name(rd)}, {name(rs1)}";
7070 behavior: {
7171 if (rd != 0) {
7272 X[rd] = (signed)(X[rs1][16+:16]);
0 commit comments