diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index f27c9fdba6a..683e771af90 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1431,7 +1431,7 @@ static loongarch_reloc_howto_type loongarch_howto_table[] =
 	 false,					/* pcrel_offset.  */
 	 BFD_RELOC_LARCH_PCREL20_S2,		/* bfd_reloc_code_real_type.  */
 	 reloc_sign_bits,			/* adjust_reloc_bits.  */
-	 NULL),					/* larch_reloc_type_name.  */
+	 "pc20"),					/* larch_reloc_type_name.  */
 
   /* Canonical Frame Address.  */
   LOONGARCH_HOWTO (R_LARCH_CFA,			/* type (104).  */
diff --git a/gas/testsuite/gas/loongarch/imm_ins.d b/gas/testsuite/gas/loongarch/imm_ins.d
index f00110cd8a3..b54df8735a8 100644
--- a/gas/testsuite/gas/loongarch/imm_ins.d
+++ b/gas/testsuite/gas/loongarch/imm_ins.d
@@ -7,74 +7,75 @@
 
 Disassembly of section .text:
 
-00000000.* <.text>:
-[ 	]+0:[ 	]+03848c0c[ 	]+li.w[ 	]+\$t0,[ 	]+0x123
-[ 	]+4:[ 	]+15ffe00d[ 	]+lu12i.w[ 	]+\$t1,[ 	]+-256
-[ 	]+8:[ 	]+16001fed[ 	]+lu32i.d[ 	]+\$t1,[ 	]+255
-[ 	]+c:[ 	]+02bffc0e[ 	]+li.w[ 	]+\$t2,[ 	]+-1
-[ 	]+10:[ 	]+1601ffee[ 	]+lu32i.d[ 	]+\$t2,[ 	]+4095
-[ 	]+14:[ 	]+0004b58b[ 	]+alsl.w[ 	]+\$a7,[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+18:[ 	]+0006b58b[ 	]+alsl.wu[ 	]+\$a7,[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+1c:[ 	]+0009358b[ 	]+bytepick.w[ 	]+\$a7,[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+20:[ 	]+000d358b[ 	]+bytepick.d[ 	]+\$a7,[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
+[ 	]*0000000000000000 <.text>:
+[ 	]+0:[ 	]+03848c0c[ 	]+li.w[ 	]+\$t0, 0x123
+[ 	]+4:[ 	]+15ffe00d[ 	]+lu12i.w[ 	]+\$t1, -256
+[ 	]+8:[ 	]+16001fed[ 	]+lu32i.d[ 	]+\$t1, 255
+[ 	]+c:[ 	]+02bffc0e[ 	]+li.w[ 	]+\$t2, -1
+[ 	]+10:[ 	]+1601ffee[ 	]+lu32i.d[ 	]+\$t2, 4095
+[ 	]+14:[ 	]+0004b58b[ 	]+alsl.w[ 	]+\$a7, \$t0, \$t1, 0x2
+[ 	]+18:[ 	]+0006b58b[ 	]+alsl.wu[ 	]+\$a7, \$t0, \$t1, 0x2
+[ 	]+1c:[ 	]+0009358b[ 	]+bytepick.w[ 	]+\$a7, \$t0, \$t1, 0x2
+[ 	]+20:[ 	]+000d358b[ 	]+bytepick.d[ 	]+\$a7, \$t0, \$t1, 0x2
 [ 	]+24:[ 	]+002a0002[ 	]+break[ 	]+0x2
 [ 	]+28:[ 	]+002a8002[ 	]+dbcl[ 	]+0x2
 [ 	]+2c:[ 	]+002b0002[ 	]+syscall[ 	]+0x2
-[ 	]+30:[ 	]+002cb58b[ 	]+alsl.d[ 	]+\$a7,[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+34:[ 	]+0040898b[ 	]+slli.w[ 	]+\$a7,[ 	]+\$t0,[ 	]+0x2
-[ 	]+38:[ 	]+0041098b[ 	]+slli.d[ 	]+\$a7,[ 	]+\$t0,[ 	]+0x2
-[ 	]+3c:[ 	]+0044898b[ 	]+srli.w[ 	]+\$a7,[ 	]+\$t0,[ 	]+0x2
-[ 	]+40:[ 	]+004509ac[ 	]+srli.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+44:[ 	]+004889ac[ 	]+srai.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+48:[ 	]+004909ac[ 	]+srai.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+4c:[ 	]+006209ac[ 	]+bstrins.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2,[ 	]+0x2
-[ 	]+50:[ 	]+008209ac[ 	]+bstrins.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2,[ 	]+0x2
-[ 	]+54:[ 	]+00c209ac[ 	]+bstrpick.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2,[ 	]+0x2
-[ 	]+58:[ 	]+00c209ac[ 	]+bstrpick.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2,[ 	]+0x2
-[ 	]+5c:[ 	]+02048dac[ 	]+slti[ 	]+\$t0,[ 	]+\$t1,[ 	]+291
-[ 	]+60:[ 	]+02448dac[ 	]+sltui[ 	]+\$t0,[ 	]+\$t1,[ 	]+291
-[ 	]+64:[ 	]+02848dac[ 	]+addi.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+291
-[ 	]+68:[ 	]+02c48dac[ 	]+addi.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+291
-[ 	]+6c:[ 	]+03048dac[ 	]+lu52i.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+291
-[ 	]+70:[ 	]+034009ac[ 	]+andi[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+74:[ 	]+038009ac[ 	]+ori[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+78:[ 	]+03c009ac[ 	]+xori[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+7c:[ 	]+100009ac[ 	]+addu16i.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+2
-[ 	]+80:[ 	]+1400246c[ 	]+lu12i.w[ 	]+\$t0,[ 	]+291
-[ 	]+84:[ 	]+1600246c[ 	]+lu32i.d[ 	]+\$t0,[ 	]+291
-[ 	]+88:[ 	]+1800246c[ 	]+pcaddi[ 	]+\$t0,[ 	]+291
-[ 	]+8c:[ 	]+1a00246c[ 	]+pcalau12i[ 	]+\$t0,[ 	]+291
-[ 	]+90:[ 	]+1c00246c[ 	]+pcaddu12i[ 	]+\$t0,[ 	]+291
-[ 	]+94:[ 	]+1e00246c[ 	]+pcaddu18i[ 	]+\$t0,[ 	]+291
-[ 	]+98:[ 	]+04048c0c[ 	]+csrrd[ 	]+\$t0,[ 	]+0x123
-[ 	]+9c:[ 	]+04048c2c[ 	]+csrwr[ 	]+\$t0,[ 	]+0x123
-[ 	]+a0:[ 	]+040009ac[ 	]+csrxchg[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+a4:[ 	]+060009a2[ 	]+cacop[ 	]+0x2,[ 	]+\$t1,[ 	]+2
-[ 	]+a8:[ 	]+064009ac[ 	]+lddir[ 	]+\$t0,[ 	]+\$t1,[ 	]+0x2
-[ 	]+ac:[ 	]+06440980[ 	]+ldpte[ 	]+\$t0,[ 	]+0x2
-[ 	]+b0:[ 	]+0649b9a2[ 	]+invtlb[ 	]+0x2,[ 	]+\$t1,[ 	]+\$t2
-[ 	]+b4:[ 	]+200101ac[ 	]+ll.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+b8:[ 	]+210101ac[ 	]+sc.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+bc:[ 	]+220101ac[ 	]+ll.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+c0:[ 	]+230101ac[ 	]+sc.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+c4:[ 	]+240101ac[ 	]+ldptr.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+c8:[ 	]+250101ac[ 	]+stptr.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+cc:[ 	]+260101ac[ 	]+ldptr.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+d0:[ 	]+270101ac[ 	]+stptr.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+d4:[ 	]+280401ac[ 	]+ld.b[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+d8:[ 	]+284401ac[ 	]+ld.h[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+dc:[ 	]+288401ac[ 	]+ld.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+e0:[ 	]+28c401ac[ 	]+ld.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+e4:[ 	]+290401ac[ 	]+st.b[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+e8:[ 	]+294401ac[ 	]+st.h[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+ec:[ 	]+298401ac[ 	]+st.w[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+f0:[ 	]+29c401ac[ 	]+st.d[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+f4:[ 	]+2a0401ac[ 	]+ld.bu[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+f8:[ 	]+2a4401ac[ 	]+ld.hu[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+fc:[ 	]+2a8401ac[ 	]+ld.wu[ 	]+\$t0,[ 	]+\$t1,[ 	]+256
-[ 	]+100:[ 	]+2ac401a2[ 	]+preld[ 	]+0x2,[ 	]+\$t1,[ 	]+256
-[ 	]+104:[ 	]+382c39a2[ 	]+preldx[ 	]+0x2,[ 	]+\$t1,[ 	]+\$t2
-[ 	]+108:[ 	]+2b048d8a[ 	]+fld.s[ 	]+\$ft2,[ 	]+\$t0,[ 	]+291
-[ 	]+10c:[ 	]+2b448d8a[ 	]+fst.s[ 	]+\$ft2,[ 	]+\$t0,[ 	]+291
-[ 	]+110:[ 	]+2b848d8a[ 	]+fld.d[ 	]+\$ft2,[ 	]+\$t0,[ 	]+291
-[ 	]+114:[ 	]+2bc48d8a[ 	]+fst.d[ 	]+\$ft2,[ 	]+\$t0,[ 	]+291
+[ 	]+30:[ 	]+002cb58b[ 	]+alsl.d[ 	]+\$a7, \$t0, \$t1, 0x2
+[ 	]+34:[ 	]+0040898b[ 	]+slli.w[ 	]+\$a7, \$t0, 0x2
+[ 	]+38:[ 	]+0041098b[ 	]+slli.d[ 	]+\$a7, \$t0, 0x2
+[ 	]+3c:[ 	]+0044898b[ 	]+srli.w[ 	]+\$a7, \$t0, 0x2
+[ 	]+40:[ 	]+004509ac[ 	]+srli.d[ 	]+\$t0, \$t1, 0x2
+[ 	]+44:[ 	]+004889ac[ 	]+srai.w[ 	]+\$t0, \$t1, 0x2
+[ 	]+48:[ 	]+004909ac[ 	]+srai.d[ 	]+\$t0, \$t1, 0x2
+[ 	]+4c:[ 	]+006209ac[ 	]+bstrins.w[ 	]+\$t0, \$t1, 0x2, 0x2
+[ 	]+50:[ 	]+008209ac[ 	]+bstrins.d[ 	]+\$t0, \$t1, 0x2, 0x2
+[ 	]+54:[ 	]+00c209ac[ 	]+bstrpick.d[ 	]+\$t0, \$t1, 0x2, 0x2
+[ 	]+58:[ 	]+00c209ac[ 	]+bstrpick.d[ 	]+\$t0, \$t1, 0x2, 0x2
+[ 	]+5c:[ 	]+02048dac[ 	]+slti[ 	]+\$t0, \$t1, 291
+[ 	]+60:[ 	]+02448dac[ 	]+sltui[ 	]+\$t0, \$t1, 291
+[ 	]+64:[ 	]+02848dac[ 	]+addi.w[ 	]+\$t0, \$t1, 291
+[ 	]+68:[ 	]+02c48dac[ 	]+addi.d[ 	]+\$t0, \$t1, 291
+[ 	]+6c:[ 	]+03048dac[ 	]+lu52i.d[ 	]+\$t0, \$t1, 291
+[ 	]+70:[ 	]+034009ac[ 	]+andi[ 	]+\$t0, \$t1, 0x2
+[ 	]+74:[ 	]+038009ac[ 	]+ori[ 	]+\$t0, \$t1, 0x2
+[ 	]+78:[ 	]+03c009ac[ 	]+xori[ 	]+\$t0, \$t1, 0x2
+[ 	]+7c:[ 	]+100009ac[ 	]+addu16i.d[ 	]+\$t0, \$t1, 2
+[ 	]+80:[ 	]+1400246c[ 	]+lu12i.w[ 	]+\$t0, 291
+[ 	]+84:[ 	]+1600246c[ 	]+lu32i.d[ 	]+\$t0, 291
+[ 	]+88:[ 	]+1800000c[ 	]+pcaddi[ 	]+\$t0, 0
+[ 	]+88: R_LARCH_PCREL20_S2[ 	]+\*ABS\*\+0x123
+[ 	]+8c:[ 	]+1a00246c[ 	]+pcalau12i[ 	]+\$t0, 291
+[ 	]+90:[ 	]+1c00246c[ 	]+pcaddu12i[ 	]+\$t0, 291
+[ 	]+94:[ 	]+1e00246c[ 	]+pcaddu18i[ 	]+\$t0, 291
+[ 	]+98:[ 	]+04048c0c[ 	]+csrrd[ 	]+\$t0, 0x123
+[ 	]+9c:[ 	]+04048c2c[ 	]+csrwr[ 	]+\$t0, 0x123
+[ 	]+a0:[ 	]+040009ac[ 	]+csrxchg[ 	]+\$t0, \$t1, 0x2
+[ 	]+a4:[ 	]+060009a2[ 	]+cacop[ 	]+0x2, \$t1, 2
+[ 	]+a8:[ 	]+064009ac[ 	]+lddir[ 	]+\$t0, \$t1, 0x2
+[ 	]+ac:[ 	]+06440980[ 	]+ldpte[ 	]+\$t0, 0x2
+[ 	]+b0:[ 	]+0649b9a2[ 	]+invtlb[ 	]+0x2, \$t1, \$t2
+[ 	]+b4:[ 	]+200101ac[ 	]+ll.w[ 	]+\$t0, \$t1, 256
+[ 	]+b8:[ 	]+210101ac[ 	]+sc.w[ 	]+\$t0, \$t1, 256
+[ 	]+bc:[ 	]+220101ac[ 	]+ll.d[ 	]+\$t0, \$t1, 256
+[ 	]+c0:[ 	]+230101ac[ 	]+sc.d[ 	]+\$t0, \$t1, 256
+[ 	]+c4:[ 	]+240101ac[ 	]+ldptr.w[ 	]+\$t0, \$t1, 256
+[ 	]+c8:[ 	]+250101ac[ 	]+stptr.w[ 	]+\$t0, \$t1, 256
+[ 	]+cc:[ 	]+260101ac[ 	]+ldptr.d[ 	]+\$t0, \$t1, 256
+[ 	]+d0:[ 	]+270101ac[ 	]+stptr.d[ 	]+\$t0, \$t1, 256
+[ 	]+d4:[ 	]+280401ac[ 	]+ld.b[ 	]+\$t0, \$t1, 256
+[ 	]+d8:[ 	]+284401ac[ 	]+ld.h[ 	]+\$t0, \$t1, 256
+[ 	]+dc:[ 	]+288401ac[ 	]+ld.w[ 	]+\$t0, \$t1, 256
+[ 	]+e0:[ 	]+28c401ac[ 	]+ld.d[ 	]+\$t0, \$t1, 256
+[ 	]+e4:[ 	]+290401ac[ 	]+st.b[ 	]+\$t0, \$t1, 256
+[ 	]+e8:[ 	]+294401ac[ 	]+st.h[ 	]+\$t0, \$t1, 256
+[ 	]+ec:[ 	]+298401ac[ 	]+st.w[ 	]+\$t0, \$t1, 256
+[ 	]+f0:[ 	]+29c401ac[ 	]+st.d[ 	]+\$t0, \$t1, 256
+[ 	]+f4:[ 	]+2a0401ac[ 	]+ld.bu[ 	]+\$t0, \$t1, 256
+[ 	]+f8:[ 	]+2a4401ac[ 	]+ld.hu[ 	]+\$t0, \$t1, 256
+[ 	]+fc:[ 	]+2a8401ac[ 	]+ld.wu[ 	]+\$t0, \$t1, 256
+[ 	]+100:[ 	]+2ac401a2[ 	]+preld[ 	]+0x2, \$t1, 256
+[ 	]+104:[ 	]+382c39a2[ 	]+preldx[ 	]+0x2, \$t1, \$t2
+[ 	]+108:[ 	]+2b048d8a[ 	]+fld.s[ 	]+\$ft2, \$t0, 291
+[ 	]+10c:[ 	]+2b448d8a[ 	]+fst.s[ 	]+\$ft2, \$t0, 291
+[ 	]+110:[ 	]+2b848d8a[ 	]+fld.d[ 	]+\$ft2, \$t0, 291
+[ 	]+114:[ 	]+2bc48d8a[ 	]+fst.d[ 	]+\$ft2, \$t0, 291
diff --git a/gas/testsuite/gas/loongarch/imm_op.d b/gas/testsuite/gas/loongarch/imm_op.d
index 3d4cba45586..4c5cffc7101 100644
--- a/gas/testsuite/gas/loongarch/imm_op.d
+++ b/gas/testsuite/gas/loongarch/imm_op.d
@@ -1,48 +1,48 @@
 #as:
 #objdump: -dr
 
-.*:[ 	]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-00000000.* <.text>:
-[ 	]+0:[ 	]+020000a4 [ 	]+slti[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+4:[ 	]+021ffca4 [ 	]+slti[ 	]+[ 	]+\$a0, \$a1, 2047
-[ 	]+8:[ 	]+022004a4 [ 	]+slti[ 	]+[ 	]+\$a0, \$a1, -2047
-[ 	]+c:[ 	]+024000a4 [ 	]+sltui[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+10:[ 	]+025ffca4 [ 	]+sltui[ 	]+[ 	]+\$a0, \$a1, 2047
-[ 	]+14:[ 	]+026004a4 [ 	]+sltui[ 	]+[ 	]+\$a0, \$a1, -2047
-[ 	]+18:[ 	]+028000a4 [ 	]+addi.w[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+1c:[ 	]+029ffca4 [ 	]+addi.w[ 	]+[ 	]+\$a0, \$a1, 2047
-[ 	]+20:[ 	]+02a004a4 [ 	]+addi.w[ 	]+[ 	]+\$a0, \$a1, -2047
-[ 	]+24:[ 	]+02c000a4 [ 	]+addi.d[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+28:[ 	]+02dffca4 [ 	]+addi.d[ 	]+[ 	]+\$a0, \$a1, 2047
-[ 	]+2c:[ 	]+02e004a4 [ 	]+addi.d[ 	]+[ 	]+\$a0, \$a1, -2047
-[ 	]+30:[ 	]+030000a4 [ 	]+lu52i.d[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+34:[ 	]+031ffca4 [ 	]+lu52i.d[ 	]+[ 	]+\$a0, \$a1, 2047
-[ 	]+38:[ 	]+032004a4 [ 	]+lu52i.d[ 	]+[ 	]+\$a0, \$a1, -2047
-[ 	]+3c:[ 	]+034000a4 [ 	]+andi[ 	]+[ 	]+\$a0, \$a1, 0x0
-[ 	]+40:[ 	]+035ffca4 [ 	]+andi[ 	]+[ 	]+\$a0, \$a1, 0x7ff
-[ 	]+44:[ 	]+038000a4 [ 	]+ori[ 	]+[ 	]+\$a0, \$a1, 0x0
-[ 	]+48:[ 	]+039ffca4 [ 	]+ori[ 	]+[ 	]+\$a0, \$a1, 0x7ff
-[ 	]+4c:[ 	]+03c000a4 [ 	]+xori[ 	]+[ 	]+\$a0, \$a1, 0x0
-[ 	]+50:[ 	]+03dffca4 [ 	]+xori[ 	]+[ 	]+\$a0, \$a1, 0x7ff
-[ 	]+54:[ 	]+100000a4 [ 	]+addu16i.d[ 	]+[ 	]+\$a0, \$a1, 0
-[ 	]+58:[ 	]+11fffca4 [ 	]+addu16i.d[ 	]+[ 	]+\$a0, \$a1, 32767
-[ 	]+5c:[ 	]+120004a4 [ 	]+addu16i.d[ 	]+[ 	]+\$a0, \$a1, -32767
-[ 	]+60:[ 	]+14000004 [ 	]+lu12i.w[ 	]+[ 	]+\$a0, 0
-[ 	]+64:[ 	]+14ffffe4 [ 	]+lu12i.w[ 	]+[ 	]+\$a0, 524287
-[ 	]+68:[ 	]+17000024 [ 	]+lu32i.d[ 	]+[ 	]+\$a0, -524287
-[ 	]+6c:[ 	]+18000004 [ 	]+pcaddi[ 	]+[ 	]+\$a0, 0
-[ 	]+70:[ 	]+18ffffe4 [ 	]+pcaddi[ 	]+[ 	]+\$a0, 524287
-[ 	]+74:[ 	]+19000024 [ 	]+pcaddi[ 	]+[ 	]+\$a0, -524287
-[ 	]+78:[ 	]+1a000004 [ 	]+pcalau12i[ 	]+[ 	]+\$a0, 0
-[ 	]+7c:[ 	]+1affffe4 [ 	]+pcalau12i[ 	]+[ 	]+\$a0, 524287
-[ 	]+80:[ 	]+1b000024 [ 	]+pcalau12i[ 	]+[ 	]+\$a0, -524287
-[ 	]+84:[ 	]+1c000004 [ 	]+pcaddu12i[ 	]+[ 	]+\$a0, 0
-[ 	]+88:[ 	]+1cffffe4 [ 	]+pcaddu12i[ 	]+[ 	]+\$a0, 524287
-[ 	]+8c:[ 	]+1d000024 [ 	]+pcaddu12i[ 	]+[ 	]+\$a0, -524287
-[ 	]+90:[ 	]+1e000004 [ 	]+pcaddu18i[ 	]+[ 	]+\$a0, 0
-[ 	]+94:[ 	]+1effffe4 [ 	]+pcaddu18i[ 	]+[ 	]+\$a0, 524287
-[ 	]+98:[ 	]+1f000024 [ 	]+pcaddu18i[ 	]+[ 	]+\$a0, -524287
+[ 	]*0000000000000000 <.text>:
+[ 	]+0:[ 	]+020000a4[ 	]+slti[ 	]+\$a0, \$a1, 0
+[ 	]+4:[ 	]+021ffca4[ 	]+slti[ 	]+\$a0, \$a1, 2047
+[ 	]+8:[ 	]+022004a4[ 	]+slti[ 	]+\$a0, \$a1, -2047
+[ 	]+c:[ 	]+024000a4[ 	]+sltui[ 	]+\$a0, \$a1, 0
+[ 	]+10:[ 	]+025ffca4[ 	]+sltui[ 	]+\$a0, \$a1, 2047
+[ 	]+14:[ 	]+026004a4[ 	]+sltui[ 	]+\$a0, \$a1, -2047
+[ 	]+18:[ 	]+028000a4[ 	]+addi.w[ 	]+\$a0, \$a1, 0
+[ 	]+1c:[ 	]+029ffca4[ 	]+addi.w[ 	]+\$a0, \$a1, 2047
+[ 	]+20:[ 	]+02a004a4[ 	]+addi.w[ 	]+\$a0, \$a1, -2047
+[ 	]+24:[ 	]+02c000a4[ 	]+addi.d[ 	]+\$a0, \$a1, 0
+[ 	]+28:[ 	]+02dffca4[ 	]+addi.d[ 	]+\$a0, \$a1, 2047
+[ 	]+2c:[ 	]+02e004a4[ 	]+addi.d[ 	]+\$a0, \$a1, -2047
+[ 	]+30:[ 	]+030000a4[ 	]+lu52i.d[ 	]+\$a0, \$a1, 0
+[ 	]+34:[ 	]+031ffca4[ 	]+lu52i.d[ 	]+\$a0, \$a1, 2047
+[ 	]+38:[ 	]+032004a4[ 	]+lu52i.d[ 	]+\$a0, \$a1, -2047
+[ 	]+3c:[ 	]+034000a4[ 	]+andi[ 	]+\$a0, \$a1, 0x0
+[ 	]+40:[ 	]+035ffca4[ 	]+andi[ 	]+\$a0, \$a1, 0x7ff
+[ 	]+44:[ 	]+038000a4[ 	]+ori[ 	]+\$a0, \$a1, 0x0
+[ 	]+48:[ 	]+039ffca4[ 	]+ori[ 	]+\$a0, \$a1, 0x7ff
+[ 	]+4c:[ 	]+03c000a4[ 	]+xori[ 	]+\$a0, \$a1, 0x0
+[ 	]+50:[ 	]+03dffca4[ 	]+xori[ 	]+\$a0, \$a1, 0x7ff
+[ 	]+54:[ 	]+100000a4[ 	]+addu16i.d[ 	]+\$a0, \$a1, 0
+[ 	]+58:[ 	]+11fffca4[ 	]+addu16i.d[ 	]+\$a0, \$a1, 32767
+[ 	]+5c:[ 	]+120004a4[ 	]+addu16i.d[ 	]+\$a0, \$a1, -32767
+[ 	]+60:[ 	]+14000004[ 	]+lu12i.w[ 	]+\$a0, 0
+[ 	]+64:[ 	]+14ffffe4[ 	]+lu12i.w[ 	]+\$a0, 524287
+[ 	]+68:[ 	]+17000024[ 	]+lu32i.d[ 	]+\$a0, -524287
+[ 	]+6c:[ 	]+18000004[ 	]+pcaddi[ 	]+\$a0, 0
+[ 	]+70:[ 	]+18ffffe4[ 	]+pcaddi[ 	]+\$a0, 2097148
+[ 	]+74:[ 	]+19000004[ 	]+pcaddi[ 	]+\$a0, -2097152
+[ 	]+78:[ 	]+1a000004[ 	]+pcalau12i[ 	]+\$a0, 0
+[ 	]+7c:[ 	]+1affffe4[ 	]+pcalau12i[ 	]+\$a0, 524287
+[ 	]+80:[ 	]+1b000024[ 	]+pcalau12i[ 	]+\$a0, -524287
+[ 	]+84:[ 	]+1c000004[ 	]+pcaddu12i[ 	]+\$a0, 0
+[ 	]+88:[ 	]+1cffffe4[ 	]+pcaddu12i[ 	]+\$a0, 524287
+[ 	]+8c:[ 	]+1d000024[ 	]+pcaddu12i[ 	]+\$a0, -524287
+[ 	]+90:[ 	]+1e000004[ 	]+pcaddu18i[ 	]+\$a0, 0
+[ 	]+94:[ 	]+1effffe4[ 	]+pcaddu18i[ 	]+\$a0, 524287
+[ 	]+98:[ 	]+1f000024[ 	]+pcaddu18i[ 	]+\$a0, -524287
diff --git a/gas/testsuite/gas/loongarch/imm_op.s b/gas/testsuite/gas/loongarch/imm_op.s
index 7e1c5518cba..329486cad55 100644
--- a/gas/testsuite/gas/loongarch/imm_op.s
+++ b/gas/testsuite/gas/loongarch/imm_op.s
@@ -26,8 +26,8 @@ lu12i.w  $r4,0
 lu12i.w  $r4,0x7ffff
 lu32i.d  $r4,-0x7ffff
 pcaddi  $r4,0
-pcaddi  $r4,0x7ffff
-pcaddi  $r4,-0x7ffff
+pcaddi  $r4,0x1ffffc
+pcaddi  $r4,-0x200000
 pcalau12i  $r4,0
 pcalau12i  $r4,0x7ffff
 pcalau12i  $r4,-0x7ffff
diff --git a/gas/testsuite/gas/loongarch/pcaddi.d b/gas/testsuite/gas/loongarch/pcaddi.d
new file mode 100644
index 00000000000..06dcee1a60c
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/pcaddi.d
@@ -0,0 +1,13 @@
+#as:
+#objdump: -dr
+
+.*:[    ]+file format .*
+
+
+Disassembly of section .text:
+
+[ 	]*0000000000000000 <.L1>:
+[ 	]+0:[ 	]+1800000c[ 	]+pcaddi[ 	]+\$t0, 0
+[ 	]+0: R_LARCH_PCREL20_S2[ 	]+.L1
+[ 	]+4:[ 	]+1800000c[ 	]+pcaddi[ 	]+\$t0, 0
+[ 	]+4: R_LARCH_PCREL20_S2[ 	]+.L2
diff --git a/gas/testsuite/gas/loongarch/pcaddi.s b/gas/testsuite/gas/loongarch/pcaddi.s
new file mode 100644
index 00000000000..46b56306ce4
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/pcaddi.s
@@ -0,0 +1,4 @@
+.L1:
+  pcaddi $t0, .L1
+  pcaddi $t0, .L2
+.L2:
diff --git a/opcodes/loongarch-opc.c b/opcodes/loongarch-opc.c
index 7d110683e93..072c138472f 100644
--- a/opcodes/loongarch-opc.c
+++ b/opcodes/loongarch-opc.c
@@ -564,6 +564,7 @@ static struct loongarch_opcode loongarch_imm_opcodes[] =
   { 0x10000000, 0xfc000000,	"addu16i.d",	"r0:5,r5:5,s10:16",		0,			0,	0,	0 },
   { 0x14000000, 0xfe000000,	"lu12i.w",	"r0:5,s5:20",			0,			0,	0,	0 },
   { 0x16000000, 0xfe000000,	"lu32i.d",	"r0:5,s5:20",			0,			0,	0,	0 },
+  { 0x0,	0x0,		"pcaddi",	"r,la",				"pcaddi %1, %%pc20(%2)",	0,	0,	0 },
   { 0x18000000, 0xfe000000,	"pcaddi",	"r0:5,s5:20<<2",		0,			0,	0,	0 },
   { 0x1a000000, 0xfe000000,	"pcalau12i",	"r0:5,s5:20",			0,			0,	0,	0 },
   { 0x1c000000, 0xfe000000,	"pcaddu12i",	"r0:5,s5:20",			0,			0,	0,	0 },
