diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/GlobalISel/ext.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/GlobalISel/ext.ll | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/llvm/test/CodeGen/X86/GlobalISel/ext.ll b/llvm/test/CodeGen/X86/GlobalISel/ext.ll index 0960ae87908..3310b0b91e4 100644 --- a/llvm/test/CodeGen/X86/GlobalISel/ext.ll +++ b/llvm/test/CodeGen/X86/GlobalISel/ext.ll @@ -86,7 +86,13 @@ define i32 @test_zext_i16(i16 %val) { define i32 @test_sext_i8(i8 %val) { ; X64-LABEL: test_sext_i8: ; X64: # %bb.0: -; X64-NEXT: movsbl %dil, %eax +; X64-NEXT: movl $24, %ecx +; X64-NEXT: # kill: def $cl killed $ecx +; X64-NEXT: shll %cl, %edi +; X64-NEXT: movl $24, %ecx +; X64-NEXT: # kill: def $cl killed $ecx +; X64-NEXT: sarl %cl, %edi +; X64-NEXT: movl %edi, %eax ; X64-NEXT: retq ; ; X32-LABEL: test_sext_i8: @@ -100,7 +106,13 @@ define i32 @test_sext_i8(i8 %val) { define i32 @test_sext_i16(i16 %val) { ; X64-LABEL: test_sext_i16: ; X64: # %bb.0: -; X64-NEXT: movswl %di, %eax +; X64-NEXT: movl $16, %ecx +; X64-NEXT: # kill: def $cl killed $ecx +; X64-NEXT: shll %cl, %edi +; X64-NEXT: movl $16, %ecx +; X64-NEXT: # kill: def $cl killed $ecx +; X64-NEXT: sarl %cl, %edi +; X64-NEXT: movl %edi, %eax ; X64-NEXT: retq ; ; X32-LABEL: test_sext_i16: |