[llvm-commits] [llvm] r164345 - in /llvm/trunk: lib/Target/ARM/ARMFastISel.cpp test/CodeGen/ARM/fast-isel.ll

Chad Rosier mcrosier at apple.com
Thu Sep 20 18:30:35 PDT 2012





On Sep 20, 2012, at 6:19 PM, NAKAMURA Takumi <geek4civic at gmail.com> wrote:

> 2012/9/21 Chad Rosier <mcrosier at apple.com>:
>> Author: mcrosier
>> Date: Thu Sep 20 19:41:42 2012
>> New Revision: 164345
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=164345&view=rev
>> Log:
>> [fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
>> non-halfword-aligned i16 loads/stores.
>> rdar://12304911
> 
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/fast-isel.ll?rev=164345&r1=164344&r2=164345&view=diff
>> ==============================================================================
>> --- llvm/trunk/test/CodeGen/ARM/fast-isel.ll (original)
>> +++ llvm/trunk/test/CodeGen/ARM/fast-isel.ll Thu Sep 20 19:41:42 2012
>> @@ -1,5 +1,7 @@
>> ; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM
>> ; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
>> +; RUN: llc < %s -O0 -arm-strict-align -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM-STRICT-ALIGN
>> +; RUN: llc < %s -O0 -arm-strict-align -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB-STRICT-ALIGN
>> 
>> ; Very basic fast-isel functionality.
>> define i32 @add(i32 %a, i32 %b) nounwind {
>> @@ -238,3 +240,31 @@
>> }
>> 
>> declare void @llvm.trap() nounwind
>> +
>> +define void @unaligned_i16_store(i16 %x, i16* %y) nounwind {
>> +entry:
>> +; ARM-STRICT-ALIGN: @unaligned_i16_store
>> +; ARM-STRICT-ALIGN: strb
>> +; ARM-STRICT-ALIGN-NEXT: strb
>> +
>> +; THUMB-STRICT-ALIGN: @unaligned_i16_store
>> +; THUMB-STRICT-ALIGN: strb
>> +; THUMB-STRICT-ALIGN: strb
>> +
>> +  store i16 %x, i16* %y, align 1
>> +  ret void
>> +}
>> +
>> +define i16 @unaligned_i16_load(i16* %x) nounwind {
>> +entry:
>> +; ARM-STRICT-ALIGN: @unaligned_i16_store
>> +; ARM-STRICT-ALIGN: ldrb
>> +; ARM-STRICT-ALIGN: ldrb
>> +
>> +; THUMB-STRICT-ALIGN: @unaligned_i16_store
>> +; THUMB-STRICT-ALIGN: ldrb
>> +; THUMB-STRICT-ALIGN: ldrb
> 
> What are you testing with 2nd "@unaligned_i16_store"? Fixed in r164350.

:/ Thanks!  



More information about the llvm-commits mailing list