[RISCV] Add specific tests for materialising imm32hi20 constants
authorAlex Bradbury <asb@lowrisc.org>
Wed, 18 Apr 2018 16:43:03 +0000 (16:43 +0000)
committerAlex Bradbury <asb@lowrisc.org>
Wed, 18 Apr 2018 16:43:03 +0000 (16:43 +0000)
i.e. constants that can be materialised with a single lui, as the lower 12
bits are zero.

llvm-svn: 330274

llvm/test/CodeGen/RISCV/imm.ll

index dca1c5e..b9e2f8a 100644 (file)
@@ -45,3 +45,19 @@ define i32 @neg_i32() nounwind {
 ; RV32I-NEXT:    ret
   ret i32 -559038737
 }
+
+define i32 @pos_i32_hi20_only() nounwind {
+; RV32I-LABEL: pos_i32_hi20_only:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    lui a0, 16
+; RV32I-NEXT:    ret
+  ret i32 65536
+}
+
+define i32 @neg_i32_hi20_only() nounwind {
+; RV32I-LABEL: neg_i32_hi20_only:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    lui a0, 1048560
+; RV32I-NEXT:    ret
+  ret i32 -65536
+}