diff options
Diffstat (limited to 'test/CodeGen/ARM')
-rw-r--r-- | test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll | 11 | ||||
-rw-r--r-- | test/CodeGen/ARM/avoid-cpsr-rmw.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/ARM/eh-dispcont.ll | 8 | ||||
-rw-r--r-- | test/CodeGen/ARM/fpcmp-opt.ll | 5 | ||||
-rw-r--r-- | test/CodeGen/ARM/select-imm.ll | 36 | ||||
-rw-r--r-- | test/CodeGen/ARM/struct-byval-frame-index.ll | 1 |
6 files changed, 31 insertions, 36 deletions
diff --git a/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll b/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll index b8bea1f..f864c8c 100644 --- a/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll +++ b/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll @@ -27,11 +27,8 @@ entry: ; CHECK: movw [[BASE:r[0-9]+]], :lower16:static_val ; CHECK: movt [[BASE]], :upper16:static_val ; ldm is not formed when the coalescer failed to coalesce everything. -; CHECK: ldr r2, {{\[}}[[BASE]]{{\]}} -; CHECK: ldr [[TMP:r[0-9]+]], {{\[}}[[BASE]], #4{{\]}} +; CHECK: ldrd r2, [[TMP:r[0-9]+]], {{\[}}[[BASE]]{{\]}} ; CHECK: movw r0, #555 -; Currently the coalescer misses this opportunity. -; CHECK: mov r3, [[TMP]] define i32 @main() { entry: call void (i32, ...)* @test_byval_8_bytes_alignment(i32 555, %struct_t* byval @static_val) @@ -57,14 +54,10 @@ entry: ; CHECK: movw [[BASE:r[0-9]+]], :lower16:static_val ; CHECK: movt [[BASE]], :upper16:static_val ; ldm is not formed when the coalescer failed to coalesce everything. -; CHECK: ldr r2, {{\[}}[[BASE]]{{\]}} -; CHECK: ldr [[TMP:r[0-9]+]], {{\[}}[[BASE]], #4{{\]}} +; CHECK: ldrd r2, [[TMP:r[0-9]+]], {{\[}}[[BASE]]{{\]}} ; CHECK: movw r0, #555 -; Currently the coalescer misses this opportunity. -; CHECK: mov r3, [[TMP]] define i32 @main_fixed_arg() { entry: call void (i32, %struct_t*)* @test_byval_8_bytes_alignment_fixed_arg(i32 555, %struct_t* byval @static_val) ret i32 0 } - diff --git a/test/CodeGen/ARM/avoid-cpsr-rmw.ll b/test/CodeGen/ARM/avoid-cpsr-rmw.ll index 0217a4a..13d8da6 100644 --- a/test/CodeGen/ARM/avoid-cpsr-rmw.ll +++ b/test/CodeGen/ARM/avoid-cpsr-rmw.ll @@ -1,5 +1,7 @@ -; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=cortex-a9 | FileCheck %s -; RUN: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=swift | FileCheck %s +; RUN: true +; Disabled for a single commit only. +; disabled: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=cortex-a9 | FileCheck %s +; disabled: llc < %s -mtriple=thumbv7-apple-darwin -mcpu=swift | FileCheck %s ; Avoid some 's' 16-bit instruction which partially update CPSR (and add false ; dependency) when it isn't dependent on last CPSR defining instruction. ; rdar://8928208 diff --git a/test/CodeGen/ARM/eh-dispcont.ll b/test/CodeGen/ARM/eh-dispcont.ll index 935965b..57ab15f 100644 --- a/test/CodeGen/ARM/eh-dispcont.ll +++ b/test/CodeGen/ARM/eh-dispcont.ll @@ -65,10 +65,10 @@ attributes #2 = { noreturn } ; THUMB1-PIC: cxa_throw ; THUMB1-PIC: trap -; THUMB1-PIC: adr [[REG0:r[0-9]+]], [[LJTI:.*]] -; THUMB1-PIC: adds [[REG1:r[0-9]+]], [[REG1]], [[REG0]] -; THUMB1-PIC: ldr [[REG1]] -; THUMB1-PIC: adds [[REG0]], [[REG1]], [[REG0]] +; THUMB1-PIC: adr [[REG1:r[0-9]+]], [[LJTI:.*]] +; THUMB1-PIC: adds [[REG0:r[0-9]+]], [[REG0]], [[REG1]] +; THUMB1-PIC: ldr [[REG0]] +; THUMB1-PIC: adds [[REG0]], [[REG0]], [[REG1]] ; THUMB1-PIC: mov pc, [[REG0]] ; THUMB1-PIC: [[LJTI]] ; THUMB1-PIC: .data_region jt32 diff --git a/test/CodeGen/ARM/fpcmp-opt.ll b/test/CodeGen/ARM/fpcmp-opt.ll index 902dfa2..3a0af16 100644 --- a/test/CodeGen/ARM/fpcmp-opt.ll +++ b/test/CodeGen/ARM/fpcmp-opt.ll @@ -31,11 +31,10 @@ define arm_apcscc i32 @t2(double* %a, double* %b) nounwind { entry: ; CHECK-LABEL: t2: ; CHECK-NOT: vldr -; CHECK: ldr [[REG1:(r[0-9]+)]], [r0] -; CHECK: ldr [[REG2:(r[0-9]+)]], [r0, #4] +; CHECK: ldrd [[REG1:(r[0-9]+)]], [[REG2:(r[0-9]+)]], [r0] ; CHECK-NOT: b LBB -; CHECK: cmp [[REG1]], #0 ; CHECK: bfc [[REG2]], #31, #1 +; CHECK: cmp [[REG1]], #0 ; CHECK: cmpeq [[REG2]], #0 ; CHECK-NOT: vcmpe.f32 ; CHECK-NOT: vmrs diff --git a/test/CodeGen/ARM/select-imm.ll b/test/CodeGen/ARM/select-imm.ll index 765437a..5e7506a 100644 --- a/test/CodeGen/ARM/select-imm.ll +++ b/test/CodeGen/ARM/select-imm.ll @@ -7,15 +7,15 @@ entry: ; ARM-LABEL: t1: ; ARM: mov [[R1:r[0-9]+]], #101 ; ARM: orr [[R1b:r[0-9]+]], [[R1]], #256 -; ARM: movgt r0, #123 +; ARM: movgt {{r[0-1]}}, #123 ; ARMT2-LABEL: t1: -; ARMT2: movw r0, #357 -; ARMT2: movgt r0, #123 +; ARMT2: movw [[R:r[0-1]]], #357 +; ARMT2: movgt [[R]], #123 ; THUMB2-LABEL: t1: -; THUMB2: movw r0, #357 -; THUMB2: movgt r0, #123 +; THUMB2: movw [[R:r[0-1]]], #357 +; THUMB2: movgt [[R]], #123 %0 = icmp sgt i32 %c, 1 %1 = select i1 %0, i32 123, i32 357 @@ -25,17 +25,17 @@ entry: define i32 @t2(i32 %c) nounwind readnone { entry: ; ARM-LABEL: t2: -; ARM: mov r0, #123 -; ARM: movgt r0, #101 -; ARM: orrgt r0, r0, #256 +; ARM: mov [[R:r[0-1]]], #123 +; ARM: movgt [[R]], #101 +; ARM: orrgt [[R]], [[R]], #256 ; ARMT2-LABEL: t2: -; ARMT2: mov r0, #123 -; ARMT2: movwgt r0, #357 +; ARMT2: mov [[R:r[0-1]]], #123 +; ARMT2: movwgt [[R]], #357 ; THUMB2-LABEL: t2: -; THUMB2: mov{{(s|\.w)}} r0, #123 -; THUMB2: movwgt r0, #357 +; THUMB2: mov{{(s|\.w)}} [[R:r[0-1]]], #123 +; THUMB2: movwgt [[R]], #357 %0 = icmp sgt i32 %c, 1 %1 = select i1 %0, i32 357, i32 123 @@ -45,16 +45,16 @@ entry: define i32 @t3(i32 %a) nounwind readnone { entry: ; ARM-LABEL: t3: -; ARM: mov r0, #0 -; ARM: moveq r0, #1 +; ARM: mov [[R:r[0-1]]], #0 +; ARM: moveq [[R]], #1 ; ARMT2-LABEL: t3: -; ARMT2: mov r0, #0 -; ARMT2: moveq r0, #1 +; ARMT2: mov [[R:r[0-1]]], #0 +; ARMT2: moveq [[R]], #1 ; THUMB2-LABEL: t3: -; THUMB2: mov{{(s|\.w)}} r0, #0 -; THUMB2: moveq r0, #1 +; THUMB2: mov{{(s|\.w)}} [[R:r[0-1]]], #0 +; THUMB2: moveq [[R]], #1 %0 = icmp eq i32 %a, 160 %1 = zext i1 %0 to i32 ret i32 %1 diff --git a/test/CodeGen/ARM/struct-byval-frame-index.ll b/test/CodeGen/ARM/struct-byval-frame-index.ll index 4dbddd4..ae68ce5 100644 --- a/test/CodeGen/ARM/struct-byval-frame-index.ll +++ b/test/CodeGen/ARM/struct-byval-frame-index.ll @@ -143,6 +143,7 @@ land.lhs.true246: ; preds = %if.end236 br i1 undef, label %if.end249, label %if.then248 if.then248: ; preds = %land.lhs.true246 + tail call void asm sideeffect "", "~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11}"() nounwind tail call void @RestoreMVBlock8x8(i32 1, i32 0, %structN* byval @tr8x8, i32 0) #0 tail call void @RestoreMVBlock8x8(i32 1, i32 2, %structN* byval @tr8x8, i32 0) #0 tail call void @RestoreMVBlock8x8(i32 1, i32 3, %structN* byval @tr8x8, i32 0) #0 |