| Index: tests_lit/assembler/x86/sandboxing.ll
|
| diff --git a/tests_lit/assembler/x86/sandboxing.ll b/tests_lit/assembler/x86/sandboxing.ll
|
| index 9b697a3ee35d6e54eb55ba8452ca1f5bd0f43066..fc8dcc4660ecfcc7d0bbe99c8f72c55200f0707e 100644
|
| --- a/tests_lit/assembler/x86/sandboxing.ll
|
| +++ b/tests_lit/assembler/x86/sandboxing.ll
|
| @@ -9,6 +9,7 @@
|
| declare void @call_target()
|
| @global_byte = internal global [1 x i8] zeroinitializer
|
| @global_short = internal global [2 x i8] zeroinitializer
|
| +@global_int = internal global [4 x i8] zeroinitializer
|
|
|
| ; A direct call sequence uses the right mask and register-call sequence.
|
| define void @test_direct_call() {
|
| @@ -94,26 +95,31 @@ entry:
|
|
|
| ; A zero-byte instruction (e.g. local label definition) at a bundle
|
| ; boundary should not trigger nop padding.
|
| -define void @label_at_boundary(i32 %arg) {
|
| +define void @label_at_boundary(i32 %arg, float %farg1, float %farg2) {
|
| entry:
|
| - %cmp = icmp eq i32 %arg, 0
|
| + %argi8 = trunc i32 %arg to i8
|
| call void @call_target()
|
| ; bundle boundary
|
| %addr_short = bitcast [2 x i8]* @global_short to i16*
|
| - store i16 0, i16* %addr_short, align 1 ; 9-byte instruction
|
| - %blah = select i1 %cmp, i32 3, i32 5 ; 23-byte lowering sequence
|
| + %addr_int = bitcast [4 x i8]* @global_int to i32*
|
| + store i32 0, i32* %addr_int, align 1 ; 10-byte instruction
|
| + %blah = select i1 true, i8 %argi8, i8 %argi8 ; 22-byte lowering sequence
|
| ; label is here
|
| - store i16 0, i16* %addr_short, align 1 ; 9-byte instruction
|
| + store i16 0, i16* %addr_short, align 1 ; 9-byte instruction
|
| ret void
|
| }
|
| ; CHECK-LABEL: label_at_boundary
|
| ; CHECK: call
|
| -; We rely on the hideous 4-instruction 23-byte Om1 lowering sequence for select.
|
| -; CHECK-NEXT: 20: {{.*}} mov WORD PTR
|
| -; CHECK-NEXT: 29: {{.*}} cmp BYTE PTR
|
| -; CHECK-NEXT: 2e: {{.*}} mov DWORD PTR
|
| +; We rely on a particular 7-instruction 22-byte Om1 lowering sequence
|
| +; for select.
|
| +; CHECK-NEXT: 20: {{.*}} mov DWORD PTR
|
| +; CHECK-NEXT: 2a: {{.*}} mov {{.*}},0x1
|
| +; CHECK-NEXT: 2c: {{.*}} cmp {{.*}},0x0
|
| +; CHECK-NEXT: 2e: {{.*}} mov {{.*}},BYTE PTR
|
| +; CHECK-NEXT: 32: {{.*}} mov BYTE PTR
|
| ; CHECK-NEXT: 36: {{.*}} jne 40
|
| -; CHECK-NEXT: 38: {{.*}} mov DWORD PTR
|
| +; CHECK-NEXT: 38: {{.*}} mov {{.*}},BYTE PTR
|
| +; CHECK-NEXT: 3c: {{.*}} mov BYTE PTR
|
| ; CHECK-NEXT: 40: {{.*}} mov WORD PTR
|
|
|
| ; Bundle lock without padding.
|
|
|