brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 2211775 Raw
67 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; We used to generate a mul+mflo sequence instead of shifting by 2/3 to get the jump table address3; RUN: llc %s -O2 -mtriple=mips64-unknown-freebsd -target-abi n64 -relocation-model=pic -o - | FileCheck %s4 5define i64 @test(i64 %arg) {6; CHECK-LABEL: test:7; CHECK:       # %bb.0: # %entry8; CHECK-NEXT:    lui $1, %hi(%neg(%gp_rel(test)))9; CHECK-NEXT:    daddu $2, $1, $2510; CHECK-NEXT:    sltiu $1, $4, 1111; CHECK-NEXT:    beqz $1, .LBB0_412; CHECK-NEXT:    nop13; CHECK-NEXT:  # %bb.1: # %entry14; CHECK-NEXT:    daddiu $1, $2, %lo(%neg(%gp_rel(test)))15; CHECK-NEXT:    dsll $2, $4, 316; CHECK-NEXT:    ld $3, %got_page(.LJTI0_0)($1)17; CHECK-NEXT:    daddu $2, $2, $318; CHECK-NEXT:    ld $2, %got_ofst(.LJTI0_0)($2)19; CHECK-NEXT:    daddu $1, $1, $220; CHECK-NEXT:    jr $121; CHECK-NEXT:    nop22; CHECK-NEXT:  .LBB0_2: # %sw.bb23; CHECK-NEXT:    jr $ra24; CHECK-NEXT:    daddiu $2, $zero, 125; CHECK-NEXT:  .LBB0_3: # %sw.bb126; CHECK-NEXT:    jr $ra27; CHECK-NEXT:    daddiu $2, $zero, 028; CHECK-NEXT:  .LBB0_4: # %default29; CHECK-NEXT:    jr $ra30; CHECK-NEXT:    daddiu $2, $zero, 123431; Previously this dsll was the following sequence:32;	daddiu	$2, $zero, 833;	dmult	$4, $234;	mflo	$235entry:36  switch i64 %arg, label %default [37    i64 0, label %sw.bb38    i64 3, label %sw.bb39    i64 5, label %sw.bb40    i64 10, label %sw.bb141  ]42 43default:44  ret i64 123445 46sw.bb:47  ret i64 148 49sw.bb1:50  ret i64 051}52 53; CHECK-LABEL: 	.section	.rodata,"a",@progbits54; CHECK-NEXT: 	.p2align	355; CHECK-LABEL: .LJTI0_0:56; CHECK-NEXT: 	.gpdword	.LBB0_257; CHECK-NEXT: 	.gpdword	.LBB0_458; CHECK-NEXT: 	.gpdword	.LBB0_459; CHECK-NEXT: 	.gpdword	.LBB0_260; CHECK-NEXT: 	.gpdword	.LBB0_461; CHECK-NEXT: 	.gpdword	.LBB0_262; CHECK-NEXT: 	.gpdword	.LBB0_463; CHECK-NEXT: 	.gpdword	.LBB0_464; CHECK-NEXT: 	.gpdword	.LBB0_465; CHECK-NEXT: 	.gpdword	.LBB0_466; CHECK-NEXT: 	.gpdword	.LBB0_367